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