如何使用拖动并在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/

10-10 00:14