我正在尝试开发一个游戏,其中单位(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。 可能是触发两者的一种方式,但先单击on
答案 0 :(得分:0)
不可能阻止mousedown
事件那样触发,因为array.some()
事件将始终最后触发。它是由按下鼠标按钮然后释放后触发的,因此很明显,在将触发mousedown
的情况下,您首先总是会有一个click
事件。
在文档中对此进行了解释:
当指针设备按钮(例如鼠标的 主按钮)被按下并在单个元素上释放。如果 在一个元素上按下按钮,然后在另一个元素上释放按钮, 在包含的最具体的祖先元素上触发事件 两者。
单击会在鼠标按下和鼠标按下事件之后按顺序触发 。