如何使用拖动并在dynamicjs中单击同一节点?使用Draggable时,拖动后也会触发click事件。
在jsfiddle中,http://jsfiddle.net/matobaa/LZ5tt/
这是代码...
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);
我正在使用dynamicjs 4.4.1。请帮忙。
最佳答案
您需要检测拖动状态。 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
}
})
关于javascript - 如何在dynamicjs中使用可拖动并单独单击?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15904712/