私は次のコードを持っています:
$(function() {
$(li).click(doThis);
$(a.clickMe).live('click', doThat);
});
そして、a.clickMeがクリックされたときにdoThisをブロックしたいと思います。a.clickMeはliの中にあります...クリックの起点がどこから来たのかを確認したいので、a.clickMeがクリックされたかどうかを確認できます。
ありがとう!
私は次のコードを持っています:
$(function() {
$(li).click(doThis);
$(a.clickMe).live('click', doThat);
});
そして、a.clickMeがクリックされたときにdoThisをブロックしたいと思います。a.clickMeはliの中にあります...クリックの起点がどこから来たのかを確認したいので、a.clickMeがクリックされたかどうかを確認できます。
ありがとう!
「クリックの発生元を確認したい」
OK、おそらく次のようなものです:
$(function() {
$("li").click(function(e) {
if ($(e.target).is("a.clickMe"))
return doThat.call(this, e);
else
return doThis.call(this, e);
});
});
つまり、li 要素のクリック ハンドラー内で、そのevent.target
要素が要素の 1 つであるかどうかをテスト"a.clickMe"
し、そうであれば呼び出します(オブジェクトをdoThat()
設定this
して渡す)。event
それ以外の場合は を呼び出しますdoThis()
。
クリック イベントが以下に伝播するのを防ぐことができますli
。
$(a.clickMe).live('click', function(e) {
e.stopPropagation();
// Now, the event won't bubble up to the `li` and won't trigger its event handler.
});