0

jquery での on() と click() の使用の違いは何ですか?

例: どちらも同じように機能します。

    $(".classname").click( function() {
       var toAdd = $('input[name=checkListItem]').val();
    });

    $(".classname").on("click", function () {
    var toAdd = $('input[name=checkListItem]').val();
    });

いつ .on() を使用する必要があり、いつ click() を使用する必要があります。両方が同じ場合、どちらを使用する必要がありますか?

4

2 に答える 2

11

上記で使用されている構文はどちらも同じです...... は呼び出し.click()へのショートカットです.on()

違いは、でのみサポートされているイベント委任構文を使用する場合です。.on()

元:

$(document).on("click", ".classname", function () {
    var toAdd = $('input[name=checkListItem]').val();
});

使用する構文を使用すると、コードが実行された時点で存在する要素のみにハンドラーが登録されます。後で同じクラスの新しい要素が追加された場合、ハンドラーはトリガーされません。クリックしました。

イベント委任は、この問題の解決策です...ここでは、DOMに存在する親要素にハンドラーを登録し、2番目の引数として渡されたフィルター基準を使用します...イベントがテストする親要素にバブルされるとフィルター セレクターに対するターゲットとその祖先。条件が満たされると、ハンドラーが実行されます。

于 2013-10-02T11:10:50.173 に答える