[英]event dragmove and targetNode returns undefined
我正在用dynamicJS做我的第一个项目。 我必须在画布上拖动一些形状,与此同时,我必须在页面上的某个地方实时编写形状的坐标。 为了做到这一点,我在这样的图层上使用事件“ dragmove”:
layer.on("dragmove",function(evt) {//detect shape and write stuff});
我使用“ targetNode”来捕获单击的形状。 问题是这样的:如果我在不属于任何组的形状上使用targetNode,则一切正常,但是如果必须移动的节点属于组,则targetNode仅在第一次时起作用,然后返回未定义的值在接下来的所有时间内(拖动移动通常需要一些时间,不像dragstart或click那样)。
我做了一个小提琴,所以您可以了解我在说什么:
2个rect在一个组中。 如果单击形状,则警报将返回其名称;如果拖动圆圈或矩形,则会在控制台上输入该形状的名称。
我将不胜感激。 对不起,我的英语,我也希望文本可以理解。
出于某种原因, evt.targetNode
只被定义在第一次调用dragmove
然后它变成不确定的,你可以这样做,看到这一点:
layer.on("dragmove",function(evt) {
console.log(evt.targetNode);
console.log(evt.targetNode.getName()+"");
});
而是尝试在事件函数之外使用var nodo
定义,然后在mousedown
上设置nodo = evt.targetNode
。
var nodo;
layer.on('mousedown', function(evt) {
nodo = evt.targetNode;
});
layer.on("click", function (evt) {
console.log(nodo.getName() + "");
});
layer.on("dragmove", function (evt) {
console.log(nodo.getName() + "");
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.