1

重複の可能性:
jquery onvsclickメソッド

APIから:

.on():1つ以上のイベントのイベントハンドラー関数を選択した要素にアタッチします。

コード例:

$("#dataTable tbody tr").on("click", function(event){
    alert($(this).text());
});

次のように書くことができます。

$("#dataTable tbody tr").click(function() {
        alert($this).text();
});

なぜわざわざ.on()内でイベントをラップするのですか?

ありがとう。

4

4 に答える 4

5

なぜわざわざ.on()内でイベントをラップするのですか?

この特定の例では、を使用するとを利用on()できるためevent delegation、すべての要素に多数のハンドラーをアタッチする代わりに、tr単純に実行できます。

$("#dataTable").on("click", "tr", function(event){
    alert($(this).text());
});

さらに、を使用して、イベントにをon()割り当てることができます。namespace

$("#dataTable").on("click.mynamespace"...)

したがって、後でイベントをよりクリーンで洗練された方法で切り離すことができます。

$("#dataTable").off(".mynamespace"...);

whileclick(function()...)は、.on("click", function()...)

于 2012-05-30T08:44:09.037 に答える
4

.click()主にANDの違い.on()

.click()ページ上の既存の要素にクリックイベントをバインドできますが、たとえばAjaxによって追加されたばかりの新しい要素については、クリックイベントは新しい要素にバインドされません。

したがって、.on()enableを使用すると、新しく追加された要素のクリックイベントをページにバインドできます

于 2012-05-30T08:48:36.077 に答える
2

逆です。.click()はの省略形です.on('click')。.clickでラップしないと、高速になります(また、イベントの委任などのオプションが追加されます)。

.clickを使用する唯一の利点は次のとおりです。

  • 書くのが短い
  • サイレントに失敗するのではなく、タイプミス時にランタイムエラーをスローします
于 2012-05-30T08:48:13.543 に答える
2

.onあなたにあげる:

  1. イベントの委任
  2. 複数のイベントに同じハンドラーを登録する機能
  3. イベントの名前空間
  4. 一貫性のあるイベント登録インターフェイス
  5. などの他のJS環境との整合性node.js

イベントをトリガーしたいときに後者を予約できるように、私は常に.on()優先して使用します。.click()

于 2012-05-30T08:47:30.773 に答える