【问题标题】:ONCLICK event without propagation?ONCLICK 事件没有传播?
【发布时间】:2020-05-18 06:40:41
【问题描述】:

我有一个 DIV 嵌套在另一个 DIV 中。父 DIV 的背景颜色为黑色,不透明,子 DIV 的背景颜色为白色,垂直和水平居中。

当单击具有不透明度的父 DIV 时,我需要父 DIV 和子 DIV 都消失。但是由于某种原因,当我单击子 DIV(白色 DIV)时,会触发 ONCLICK 事件...我只需要在单击父 DIV 时触发它...

是因为冒泡??

如果是这样,我该如何防止它,我的主要问题是拥有这种布局的最佳方式是什么,所以当只点击黑色不透明 DIV 时,我让两个 DIV 都消失?

【问题讨论】:

  • 向我们展示您正在使用的 JS 代码。屏幕截图并不能完全说明问题。
  • 请访问help center,使用tour查看内容和How to Ask。做一些研究,搜索关于 SO 的相关主题;如果您遇到困难,请发布您的尝试minimal reproducible example,并使用[<>] sn-p 编辑器记录输入和预期输出。

标签: html css layout event-bubbling


【解决方案1】:

您可以使用 event.target 属性来了解在哪个元素上触发了点击事件。在父 onclick 监听器中,您可以检查事件目标,如果它不是父元素,则从监听器返回。

【讨论】:

    【解决方案2】:

    要传递点击事件,您可以将 pointer-events: none; CSS 属性添加到您的子 div

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-29
      • 2014-05-06
      • 1970-01-01
      • 2011-07-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多