所以我有以下场景:
<div id="block"> Sample text. <a href="#">Anchor link</a> </div> <script type="text/javascript"> $("#block").click(function() { alert('test'); }); </script>
当我点击div内的任何地方,我得到’测试’警报。但是,我想防止这种情况发生时,我点击“锚点链接”。如何实现呢?
谢谢
解决方法
您可以停止点击从带有额外处理程序的链接冒泡,如下所示:
$("#block a").click(function(e) { e.stopPropagation(); });
我们在评论中讨论的替代方案:
$("#block").delegate('a','click',function(e){ e.stopImmediatePropagation(); }) .click(function() { alert('test'); });
这将防止任何子链接冒泡(好吧,不是真的,但他们的处理程序从执行),但不为每个元素创建处理程序,这是通过.stopImmediatePropagation()
完成。