![](/img/trans.png)
[英]React - Prevent onMouseDown event on parent element when a child element is clicked
[英]how to stop triggering onMouseDown when element is only clicked?
我正在尝试开发一种游戏,其中的单位(SVG榆木)具有反应性
该单元应通过拖动来移动。 如果仅单击一个窗体,则应将其打开。 当我单击时,会触发mousedown,但不会触发onclick。
class Unit extends Component {
state = {
moving:false
};
handleClick = (e) =>{
console.log("Clicked");
}
startMove = e => {
this.setState({moving:true})
};
render() {
return (
<g className="u-wrapper">
<g onClick={this.handleClick}
onMouseDown={this.startMove}>
{this.createCircle()}
/>
</g>
{this.renderRangeCircle()};
</g>
);
}
}
如果仅单击鼠标,则不会触发mouseDown。 可能是触发两者的方法,但先单击onclick
不可能阻止mousedown
事件那样触发,因为click
事件将始终最后触发。 它是由按下鼠标按钮然后释放后触发的,因此,很明显,在触发click
的情况下,您首先总是会发生mousedown
事件。
在文档中对此进行了解释:
当在单个元素上按下并释放指针设备按钮(例如,鼠标的主按钮)时,将触发click事件。 如果在一个元素上按下该按钮,然后在另一元素上释放该按钮,则将在包含这两个元素的最特定祖先元素上触发该事件。
单击mousedown和mouseup事件之后,将按此顺序触发。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.