onClick仅在<i>元素上触发

时间:2019-04-19 19:19:27

标签: javascript reactjs

我的div覆盖了整个页面,并绑定了onClick。它具有位置:绝对,并在页面上注册所有点击。如果e.target没有持有某个节点,那么我什么也不做。

这似乎阻止了其他div上的其他onClick事件,我认为这是合乎逻辑的。我不明白的是,较小的div中的i元素仍然可以使用onClick。

为什么onClick也不会在i元素上被阻止?

相关问题:我可以使所有div点击吗?这样onClick函数会同时在较大的div和下方的较小的div上触发?

编辑:实际上,除了我显示的内容之外,没有什么其他的了。会尝试使其更加清晰,但基本上就是这样。可能加 不知道在线工具可以提供有关React的有效示例。

反应:

checkForClick(e) {
 const node = ReactDOM.findDOMNode(this.someNode);
 if (node && !e.target.contains(node)) {
  this.setState({something: false});
 }
}


render()  {
 return (
  <div className='click-trigger' onClick={(e) => this._checkForClick(e)}></div>
   <div onClick={this._otherFunction}>
    // This content doesn't fire _otherFunction
    Content
    // The <i> fires _otherFunction
    <i className='fas fa-circle' />
  </div>
 )
}

CSS:

.click-trigger {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

0 个答案:

没有答案