javascript - React 如何防止单击子级时触发父级的 onclick 事件?

标签 javascript reactjs

我已经在我的 div 上设置了 onClick 属性,单击该属性将导航到新页面。 svg 是绝对定位的。如何避免 svg 元素上的点击事件?

我已经尝试过 stopPropagation() 但它不起作用。

<div
  className={classes.container}
  onClick={() => navigate(`${props.productName}`)}
>
  <img src={props.image} alt="" />
  <svg></svg>
</div>

最佳答案

显而易见的答案是将其放在 div 之外。
但如果您确实做不到,您始终可以使用 CSS 来实现此目的。

尝试使用pointer-events

示例:

HTML -

<div
  className={classes.container}
  onClick={() => navigate(`${props.productName}`)}
>
  <img src={props.image} alt="" />
  <svg className='no-events'></svg>
</div>

CSS-

.no-events {
   pointer-events: none;
}

关于javascript - React 如何防止单击子级时触发父级的 onclick 事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73353110/

相关文章:

javascript - Swift评估JavaScript不删除搜索栏中的占位符

reactjs - TextInput 允许字体缩放 false

javascript - 如何清除卸载时自重启功能的超时?

javascript - 如何在重新渲染时将固定大小的 div 从一个容器平滑过渡到另一个容器?

javascript - 从数组JavaScript播放音频

javascript - 选中所有复选框并将所有更新状态作为对象发送 [Angular Js]

XSL 文档中的 JavaScript For 循环

javascript - 第一次调用函数来更改状态不会更新任何字段

javascript - 有条件的 Redux reducer 使用

javascript - 为什么我的jquery ajax在我的页面上不起作用并且页面也在刷新