javascript - 子元素点击也触发父元素 - Reactjs

标签 javascript reactjs

代码如下

<ul className="sb-modules-list">
    <li key={index} className={this.getModuleClass(module)} onClick={() => { alert(127) }}>
        <ul className="sb-module-steps-list">
           { module.steps && module.steps.map((stepInfo, stepIndex) =>
               <li key={stepIndex} className={this.getStepClass(stepInfo)}  onClick={() => { alert(456) }}>
                        <p>{stepInfo.short_title}</p>
                      </li>
                      )}
         </ul>
</ul>

问题是,当我点击最里面的子标签 li 时,它会触发子标签和父标签的 onclick 事件。

例如,在这种情况下,点击会触发 alert(456) 以及父函数 alert(123);

我不希望在单击子项时运行父方法。知道如何解决这个问题吗?

最佳答案

您可以使用 event.stopPropagation()以防止事件冒泡。考虑这个点击处理程序的例子:

const handleClick = (event, value) => {
    event.stopPropagation();
    alert(value);
}

然后你可以像这样使用它:

<li onClick={event => handleClick(event, 127)}></li>

关于javascript - 子元素点击也触发父元素 - Reactjs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50232146/

相关文章:

javascript - Vue.js 不会使用 v-for 重新渲染组件

javascript - MVC4 View 未检测到 JQuery

javascript - 无法让 'Fitty' 与 Angular 2+ 一起使用

javascript - 在 react 中直接修改来自 child 的 parent Prop

reactjs - redux 重新选择关系数据的选择器

javascript - 在 jQuery 中,我应该使用 parseFloat(el.width()) 还是 parseInt(el.width(),10)?更喜欢哪一个

javascript - JS如何连接数组的数组

css - 对鼠标悬停建议使用react

javascript - React - 从子 DOM 元素获取 React 组件?

reactjs - 如何在 redux 连接的受控组件中使用先前状态加上附加值来调用 setState?