0

私は次のコードを持っています:

$(function() {
    $(li).click(doThis);

    $(a.clickMe).live('click', doThat);
});

そして、a.clickMeがクリックされたときにdoThisをブロックしたいと思います。a.clickMeはliの中にあります...クリックの起点がどこから来たのかを確認したいので、a.clickMeがクリックされたかどうかを確認できます。

ありがとう!

4

2 に答える 2

1

「クリックの発生元を確認したい」

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()

于 2012-12-17T22:31:20.457 に答える
0

クリック イベントが以下に伝播するのを防ぐことができます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.
});
于 2012-12-17T22:21:14.133 に答える