React合成事件:onClick或onContextMenu被调用后onDrag不会触发
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了React合成事件:onClick或onContextMenu被调用后onDrag不会触发相关的知识,希望对你有一定的参考价值。
我正在开发一个使用画布图的React应用程序。我试图像这样检测拖动:
<canvas className="mycanvas" onDrag ={this.moveObj} onDragStart={this.startMoving} onDragEnd={this.stopMoving} onDoubleClick={this.createSelectedObj} ref={(mycanvas)=>{this.mycanvas= mycanvas;} }></canvas>
我可以拖动对象直到我点击或右键单击画布。单击或右键单击后,如果我尝试拖动它不会触发。它只在我双击画布后才会触发。
有谁知道这里出了什么问题?
答案
这个问题是因为在html5中onDrag和其他拖动相关的事件都是为拖放元素而设计的。它仅在拖放上下文中触发。
要在canvas中实现拖动行为,我使用了classic
mousedown,mouseup和mousemove事件
和使用
onDragStart={(e)=>{e.preventDefault();}
防止在拖放上下文下拖动。
以上是关于React合成事件:onClick或onContextMenu被调用后onDrag不会触发的主要内容,如果未能解决你的问题,请参考以下文章