jquery - 如何让点击事件只在父 DIV 上触发,而不是在子 DIV 上触发?

标签 jquery events onclick

我有一个带有分类 foobar 的 DIV,以及该 DIV 中的一些未分类的 DIV,但我想它们继承了 foobar 类:

$('.foobar').on('click', function() { /*...do stuff...*/ });

我希望它仅在单击 DIV 中的某处而不是其子 DIV 时触发。

最佳答案

如果 e.target 是与 this 相同的元素,则您没有点击后代。

$('.foobar').on('click', function(e) {
  if (e.target !== this)
    return;
  
  alert( 'clicked the foobar' );
});
.foobar {
  padding: 20px; background: yellow;
}
span {
  background: blue; color: white; padding: 8px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div class='foobar'> .foobar (alert) 
  <span>child (no alert)</span>
</div>

关于jquery - 如何让点击事件只在父 DIV 上触发,而不是在子 DIV 上触发?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9183381/

相关文章:

javascript - 跨窗口传递回调函数导致 ie 出错

c# - C# 中的 EventHandler<TEventArgs> 线程安全?

c# - Lambda 表达式和事件订阅

c# - 如何摆脱 Visual Studio 中的 "[some event] never used"编译器警告?

javascript - onclick 行为异常 - 刷新页面而不是显示内容

javascript - 按钮 onclick 事件(硬编码)

javascript - 将选定的值从文本框移动到下拉列表

jquery - 使用IE9和jQuery进行动态图像错误处理

jquery - 将 Jquery UI 插件与 Angular 结合使用

python - 在 matplotlib 上抓取并绘制由线段交叉的二维数组的值