4

すぐに使用できるJQueryイベント処理ではなく、イベント委任をいつ使用すべきかについて混乱しています。

JQueryでは非常に簡単なので、私は常にイベントハンドラーを使用したいと思っています。

例えば:

$("button#submit").click(function () { 
      $(this).css("disabled", "true");
    });

イベントの委任は、実際にはそれほど複雑ではありません。

$("button#submit").live("click", function() {
      $(this).css("disabled", "true");
});

しかし、それは直感的ではないようです。

イベント委任をいつ使用するかについての簡単な経験則はありますか?私はそれのポイントを本当に理解していないと思います。

4

4 に答える 4

3

そのイベントを割り当てる必要がある要素をページに動的に追加する場合は、.live()を使用します。(.live()はセレクターでのみ機能することに注意してください)

他のすべての場合は、.click()(またはその他のイベント)を使用します

于 2009-07-20T02:05:00.507 に答える
2

次の状況では、イベント委任を使用する必要があります。

  • 多くの要素にわたって同じイベントを処理する場合、たとえば、多くの行を持つデータテーブルがある場合、委任を使用すると、行ごとにイベントハンドラーを登録するよりもはるかに少ないメモリを使用し、高速になります。
  • ページの読み込み後に要素がページに動的に追加され、これらの新しい要素のイベントを処理する場合(データテーブルへの行の追加など)。

イベントユーティリティとイベント委任を使用してパフォーマンスを向上させることで、これについてもう少し詳しく説明します(この記事では、YUIを使用していますが、アイデアは引き続き適用できます)。

于 2009-07-20T02:39:49.177 に答える
1

thisによると、バインドされた要素がたくさんある場合は、速度がすべてです。

于 2009-07-20T02:10:19.640 に答える
0

可能な限りライブを使用していることがわかります。そうすれば、後で動的コンテンツを追加しても、コードをまったく変更する必要がありません。

于 2009-07-20T02:19:45.613 に答える