このようなHTML構造があるとしましょう
<div id="container">
<div id="nested">
<span id="someElement"></span>
</div>
</div>
...そして私たちの目標は、#container
唯一のイベントリスナーを持つことです! そのため、リスナー (jQuery コード) をバインドします。
$("#container").on('click', function(event) {
alert("container was clicked");
});
それはもちろん機能しますが、このアプローチの問題点は、イベントは通常バブルアップするため、実際に#nested
またはをクリックすると、そのリスナーも起動すること#someElement
です。クリックされたときにのみクリックを処理する私の現在の解決策#container
は、と比較this
することですevent.target
$("#container").on('click', function(event) {
if(this === event.target) {
alert("container was clicked");
}
});
私の質問: それは「ベスト プラクティス」と見なされますか? 「箱から出して」同じ結果を達成するためのjQueryのより良い方法はありますか?