イベントの委任は、jQueryによってネイティブにサポートされてきました。難しいのは、適切なセレクターを作成することです。元々delegate
は使用されていましたが、最近ではのデリゲート形式をon
使用する必要があります。
イベント委任の目的は、子要素のイベントをリッスンし、親ではなく子要素にバインドされているかのように、それらの要素のバインドされたイベントハンドラーを呼び出すことです。これは、ハンドラーをDOM内のすべての要素にバインドする代わりに、ハンドラーを最初の選択のすべての要素(document
単一の要素)にバインドすることを意味します。これにより、単一のセレクターを使用して、絶えず変化する要素のセットにバインドする簡単な方法も作成されます。新しい要素はdocument
、最初のイベントハンドラーがバインドされたときに存在したかどうかに関係なく、イベントを伝播します。
$(document).on('click', '*:not(#master, #master *, #slave, #slave *)', function (e) {
//this will reference the clicked element
});
さらに、要素がまたはであってはならないだけでなく、または#master
の子であっ#slave
てはならないことに注意してください。#master
#slave