所以我有以下场景:
<div id="block">
Sample text.
<a href="#">Anchor link</a>
</div>
<script type="text/javascript">
$("#block").click(function() { alert('test'); });
</script>
当我单击 div 内的任意位置时,我会收到“测试”警报。但是,我想防止当我单击“ anchor 链接”时发生这种情况。我怎样才能实现它?
谢谢
最佳答案
您可以使用附加处理程序来阻止链接中的点击冒泡,如下所示:
$("#block a").click(function(e) { e.stopPropagation(); });
我们在评论中讨论的替代方案:
$("#block").delegate('a', 'click', function(e){ e.stopImmediatePropagation(); })
.click(function() { alert('test'); });
这将防止任何子链接冒泡(好吧,不是真的,而是它们的处理程序执行),但不会为每个元素创建处理程序,这是通过 .stopImmediatePropagation()
完成的.
关于jquery - 单击子项时如何忽略单击事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3864102/