javascript - 捕获父容器而不是子容器的点击事件

标签 javascript html css

用下面的例子:

enter image description here

HTML:

<div class="parent" onclick="alert('hello!')">
  <div class="child"></div>
</div>

CSS:

.parent {
  align-items: center;
  background: blue;
  display: flex;
  justify-content: center;
}

.child {
  background: pink;
  height: 100px;
  width: 200px;
}

我希望当用户点击父/蓝色部分时触发 onclick 事件。但是当用户点击子/粉红色部分时不会。现在,即使单击粉红色,事件也会触发,这当然很明显,因为 .child 是父级的子级。有什么办法可以克服这个问题吗?

最佳答案

使用event.stopPropagation()事件冒泡到 DOM 树的方法。

.parent {
  align-items: center;
  background: blue;
  display: flex;
  justify-content: center;
}
.child {
  background: pink;
  height: 100px;
  width: 200px;
}
<div class="parent" onclick="alert('hello!')">
  <div class="child" onclick="event.stopPropagation()"></div>
</div>

关于javascript - 捕获父容器而不是子容器的点击事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42022540/

相关文章:

javascript - 更改更改范围选择器按钮上的 HighStock 图表标签

javascript - AngularJS - 指令中的动态开关案例

android - 如何让这个媒体查询在三星 Galaxy Note4 的不同浏览器中工作相同?

javascript - Chrome 使用 Window.Open 打开选项卡

javascript - 如何从 div 标签表示的表中检索行和列数据

javascript - 提交时在控制台中显示表单数据

视口(viewport)中jquery最近的 anchor

CSS 框阴影不一致

css - 如何在视频下方添加文字

javascript - 是否可以更改整个 css 类/js 以及与之相关的任何内容?