1

私のコードはhtmlで次のようなものです:

<li class="arrow">    
    <div>
        <a href="javascript:void(0);" class="anchor">remove</a> 
    </div>                      
</li>

そして、deligate() jquery メソッドを使用して要素をバインドします (要素が動的に表示されるため)

$obj.delegate(".arrow", "click", function() {
    alert("clicked on arrow");
});

$obj.delegate(".anchor", "click", function(event) {
     event.stopPropagation();
     alert("anchor clicked");
});

私の問題は、「.anchor」をクリックすると両方のイベントが発生することです。このコンテキストで event.stopPropagation() を使用する方法を教えてもらえますか? 上記のように試しましたが、うまくいきませんでした。これを行う他の方法はありますか?

編集: event.isPropagationStopped() を呼び出してみましたが、true が返されます。それでも両方のイベントが呼び出されます。

4

2 に答える 2

1

私の理解では、 with.delegate.liveto が必要ですreturn false。これは、イベントがどのようにアタッチされているかによるものだと思います-要素ではなく、その先祖に。

以下に例を示します: http://jsfiddle.net/G3k8Z/

于 2011-03-05T10:19:44.120 に答える