本文介绍了如何使用draggable并单独点击kineticjs?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
如何使用draggable并点击kineticjs中的同一节点?当使用draggable时,点击事件也会在拖动后触发。
how to use draggable and click on same node in kineticjs? when using draggable then a click event fires also after drag.
在jsfiddle,
in jsfiddle, http://jsfiddle.net/matobaa/LZ5tt/
以下是代码......
Here is the code...
var stage = new Kinetic.Stage({
container: 'container', width: 640, height: 480
});
var layer = new Kinetic.Layer();
var oval = new Kinetic.Ellipse({
x: 100, y: 100, radius: 50, stroke: 'red',
draggable: true,
});
oval.on('click', function(evt) {
alert("clicked!"); // Will not be triggered after drag
})
layer.add(oval);
stage.add(layer);
我正在使用kineticjs 4.4.1。请帮助。
I'm using kineticjs 4.4.1. please help.
推荐答案
您需要检测拖动状态。 Es:
You need to detect drag state. Es:
var indrag = false;
oval.on('dragstart', function(evt){
indrag = true;
});
oval.on('dragend', function(evt){
indrag = false;
});
然后:
oval.on('click', function(evt) {
if (!indrag){
alert("clicked!"); // Will not be triggered after drag
}
})
这篇关于如何使用draggable并单独点击kineticjs?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!