javascript - 单击子项时停止父项 onClick(React 或 vanilla JS)

标签 javascript html css reactjs

我有一个粘性栏,我想让用户通过在右侧放置一个 X 和 position: absolute 来关闭它。但是,单击时,它还会触发“分享到 Facebook”事件。我该如何阻止这种情况发生?

enter image description here

JS文件

return (
    <div
      className={'ShareBar'}
      onClick={()=>console.log('sharing')}>
        <span className={'ShareCTA'}>
          {facebook.svg} Share on Facebook &trade;
          <span
            className={'CloseButton'}
            handleClick={function (e) { e.stopPropagation()/*attempted fix*/; console.log('closing'); return; }}>
              X
          </span>
        </span>
    </div>
  );

CSS 文件(这是一个 sass 文件,所以没有分号之类的东西

.ShareBar
  position fixed
  bottom 0
  z-index 9999
  display flex
  justify-content flex-end
  align-items center
  height 48px
  cursor pointer
  width 100%
  ...

  .ShareCTA
    width 100%
    position relative
    display flex
    justify-content center
    align-items center
    font-size 20px
    ...
    svg
      height 20px

  .CloseButton
    position absolute
    z-index 99999
    right 10px
    border-radius 50%
    height 40px
    width 40px
    display flex
    justify-content center
    align-items center
    ...

最佳答案

stopPropagation 将像您编写的那样工作,但点击事件的事件处理程序称为 onClick,而不是 handleClick:

<span
  className={'CloseButton'}
  onClick={e => e.stopPropagation()}
>
  X
</span>

关于javascript - 单击子项时停止父项 onClick(React 或 vanilla JS),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51411675/

相关文章:

javascript - 使用 jquery 触发另一个日期时间选择器

javascript - 该解决方案不适用于 1 - 20 之间的值

html - 关闭 CSS 下拉菜单 onclick

html - 使用 Bootstrap 3 等高列,同时保留列填充

css - 正确使用边框图像

html - 如何将文本对齐到输入字段的中间?

javascript - 点击添加div : am I "doing it wrong"?

javascript - Highcharts - 在热图中显示日期

javascript - 转义来自 JSON 的引号

css - 删除 css 位置 :relative 的空间