我的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%;
}