jquery - 单击子项时如何忽略单击事件

标签 jquery

所以我有以下场景:

<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/

相关文章:

javascript - 空白和背景移动

jquery - Chrome Bug 选择/显示

javascript - 在传单中重新绘制一个矩形

jquery - 使用jquery,如何隐藏所有未检查的表行?

jquery - 自定义 jQuery 过滤器需要优化

php - 默认情况下将 PHP 变量解析为 Jquery UI Datepicker

javascript - Jquery 中未解析 URL 名称

javascript - 将计数器传递给匿名函数

javascript - 如何在 CodeIgniter 中使用 jquery 复制隐藏字段值并将其传递到另一个页面?

javascript - 需要 TextBox 的 Angular 的奇怪行为