Jqueryのbind、live、delegate、onの違いは?

1080 ワード

bind: 1.互換性が良い;2.選択したすべての要素にイベントをバインドします.3.動的に追加された要素にイベントをバインドできません.4.効率が低く、特にネスト関係が深い要素
$("li").bind("click", function (event) {  
    alert("hello");  
});  

live: 1.すべてのイベントをjQueryオブジェクト$(document)にバインドします.2.イベントは一度だけバインドされ、フィルタされた要素にバインドする必要はありません.3.動的に追加された要素にイベントをバインドできます.4.stopPropagationを使用してイベントの泡を防ぐことはできません
$("li").live("click", function (event) {  
    alert("hello");  
});  

delegate: 1.イベント要素を追加する親要素にイベントをバインドし、liveよりも柔軟です.2.バインドされた親要素は、lveよりも効率的な近接原則を採用することができる.動的に追加された要素にも使用できます
$("#ul").delegate("li", "click", function (event) {  
    alert("hello");  
});  

On:jQuery 1です.7に新たに追加され,前述の3つの方法はいずれもon法に依存して実現された.主な特徴:1.イベントの追加とアンインストールはonによって実現され,統一的なイベント処理方法を提供する.2.使用の難易度が高くなり、onの使用に慣れていない場合は誤用し、性能が低下する可能性が高い.
経験:on方法の正しい使用1.onメソッドを使用し、2番目のパラメータがnullを使用する場合、bind()と同じ役割を果たします.2.2番目のパラメータにセレクタが適用する場合は、呼び出しオブジェクトiを参照する.呼び出しオブジェクトが$(document)である場合はlive()と同じ役割を果たす.そうでなければdelegate()と同じ