这是一个基本组成部分。无论是<ul>
和<li>
拥有的onClick功能。我只希望onClick
<li>
触发,而不希望触发<ul>
。我该如何实现?
我玩过e.preventDefault(),e.stopPropagation()都无济于事。
class List extends React.Component {
constructor(props) {
super(props);
}
handleClick() {
// do something
}
render() {
return (
<ul
onClick={(e) => {
console.log('parent');
this.handleClick();
}}
>
<li
onClick={(e) => {
console.log('child');
// prevent default? prevent propagation?
this.handleClick();
}}
>
</li>
</ul>
)
}
}
// => parent
// => child
我遇到过同样的问题。我发现stopPropagation 确实 有效。我将列表项拆分为一个单独的组件,如下所示:
class List extends React.Component {
handleClick = e => {
// do something
}
render() {
return (
<ul onClick={this.handleClick}>
<ListItem onClick={this.handleClick}>Item</ListItem>
</ul>
)
}
}
class ListItem extends React.Component {
handleClick = e => {
e.stopPropagation(); // <------ Here is the magic
this.props.onClick();
}
render() {
return (
<li onClick={this.handleClick}>
{this.props.children}
</li>
)
}
}
本文向大家介绍React中阻止事件冒泡的问题详析,包括了React中阻止事件冒泡的问题详析的使用技巧和注意事项,需要的朋友参考一下 前言 最近在研究react、redux等,网上找了很久都没有完整的答案,索性自己整理下,这篇文章就来给大家介绍了关于React阻止事件冒泡的相关内容,下面话不多说了,来一起看看详细的介绍吧 在正式开始前,先来看看 JS 中事件的触发与事件处理器的执行。 JS 中事件的
本文向大家介绍利用JQuery阻止事件冒泡,包括了利用JQuery阻止事件冒泡的使用技巧和注意事项,需要的朋友参考一下 冒泡事件就是点击子节点,会向上触发父节点,祖先节点的点击事件。 我们在平时的开发过程中,肯定会遇到在一个div(这个div可以是元素)包裹一个div的情况,但是呢,在这两个div上都添加了事件,如果点击里面的div我们希望处理这个div的事件,但是呢,我们不希望外层的div的事件
多层组件嵌套button,如何阻止事件传递
我有一个人员搜索脚本,在您键入时显示建议。结果的结构大致如下: 由于人员列表会随着您的键入而改变,到目前为止,我使用jQuery的live()函数自动将click事件绑定到所有的.person元素。这是不推荐的和糟糕的做法,所以我正在尝试更新代码。 我觉得我需要这样的东西: 但是我想更多地了解一下如何在vanilla JavaScript中处理这个问题。我以为当点击带有click事件的项的子项时,
本文向大家介绍JavaScript阻止事件冒泡示例分享,包括了JavaScript阻止事件冒泡示例分享的使用技巧和注意事项,需要的朋友参考一下 之前遇到事件冒泡的问题,也去网上搜索了一番,结果大部分都是一样的代码,贴来用时也不太顺利。涉及到FF时,可以用 e.stopPropagation(); ,不知怎地我没用成功。不过我发现FF支持e.cancelBubble = true;的写法,经测试可行
本文向大家介绍js事件冒泡、事件捕获和阻止默认事件详解,包括了js事件冒泡、事件捕获和阻止默认事件详解的使用技巧和注意事项,需要的朋友参考一下 谈起JavaScript的 事件,事件冒泡、事件捕获、阻止默认事件这三个话题,无论是面试还是在平时的工作中,都很难避免。 1.事件冒泡 先来看一段代码: html代码 你的本意是触发button这个元素,却连同父元素绑定的事件一同触发。这就是事件冒泡。 如