我的代码在 html 中如下所示:
<li class="arrow">
<div>
<a href="javascript:void(0);" class="anchor">remove</a>
</div>
</li>
然后我使用 deligate() jquery 方法绑定(bind)我的元素(因为元素是动态出现的)
$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。但仍然调用了两个事件。
最佳答案
当使用delegate
或live
和stopPropagation
时会有限制。
您在处理程序中返回 false
以防止 eventPropagation
和 default
尝试
$obj.delegate(".anchor", "click", function(event) {
alert("anchor clicked");
return false;
});
关于javascript - 如何在 delegate() 中使用 event.stopPropagation(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5203048/