0

要素を複製して別の要素に追加する場合、元の要素からイベントを複製するのと、イベントを複製する必要がないように on() を使用するのとではどちらがよいでしょうか? より良いとは、高速であること、メモリ使用量が少ないこと、およびそれを行うためのより公式な方法であることに基づいています。ある方法が別の方法より優れている理由を説明してください。ありがとうございました

イベントが複製されないオプション 1

$('#add').click(function(){$("#list").append($("#clone").clone(false));};
$("#list").on("click", "a", function(){alert('hello');});

イベントが複製されるオプション 2

$('#add').click(function(){$("#list").append($("#clone").clone(true));};
$("#clone a").click(function(){alert('hello');});

両方のオプションに共通の HTML

<a href="javascript:void(0)" id="add">Click</a>
<li id="clone"><a href="javascript:void(0)">Click</a></li>
<ul id="list"></ul>
4

2 に答える 2

0

イベント委任 (onオプション) を使用する必要があります。主な利点は、追加後に別のイベント ハンドラーを追加する必要がないことです。イベント処理を事前に定義するだけです。

主な利点は、各オブジェクトに新しい関数を追加しないことです。つまり、消費されるメモリが少なくなります。代わりに、イベントは同じイベント処理関数にバブル アップします。

$("#list").on("click", "a", function(){alert('hello');});

// Don't run this after appending; you're already done setting up event handling.
于 2013-05-27T18:10:47.637 に答える
0

イベント委任は少し遅くなりますが、消費するメモリははるかに少なくなります。そして、それはよりクリーンなアプローチと考えられています。

于 2013-05-27T18:11:22.523 に答える