プレーンな JavaScript では、同じイベント オブジェクトが両方のイベント リスナーに到達するため、それらを比較できます。一方、jQuery は元のイベント オブジェクトをリスナーごとに新しい正規化されたオブジェクトにラップするため、代わりにそれらのプロパティを確認する必要が.originalEvent
あります。
いずれにせよ、それを確認する必要はありませんでした。通常、クリックした要素がクリックをバインドした要素と同じかどうかを知りたいだけです。
document.body.addEventListener('click', function(e) {
if(e.target === this) {
// the click happened on the body itself
} else {
// the click bubbled up
}
}, false);
jQuery はイベント委譲のための優れたメカニズムを提供するため、次のようなものも必要ありませんif
。
$('body').on('click', '.someSelector', function(e) {
// This will only fire if an element with class 'someSelector'
// was clicked
});