如何使用draggable并单独点击kineticjs? [英] how to use draggable and click separately in kineticjs?

查看:147
本文介绍了如何使用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, http://jsfiddle.net/matobaa/LZ5tt/

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?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆