未捕获错误:未知类型:d3.js v5.4.0中的dragend
我使用的是未捕获错误:未知类型:d3.js v5.4.0中的dragend,d3.js,release,release-notes,D3.js,Release,Release Notes,我使用的是d3.jsv5.4.0 下面是我得到的错误:未捕获错误:未知类型:dragend 这是因为我正在努力做到以下几点: d3.drag() .subject(function(d){ return {x: d.x, y: d.y}; }) .on("drag", function(args){ thisGraph.state.jus
d3.jsv5.4.0
下面是我得到的错误:未捕获错误:未知类型:dragend
这是因为我正在努力做到以下几点:
d3.drag()
.subject(function(d){
return {x: d.x, y: d.y};
})
.on("drag", function(args){
thisGraph.state.justDragged = true;
thisGraph.dragmove.call(thisGraph, args);
})
.on("dragend", function() {
// todo check if edge-mode is selected
});
而dragend现在似乎被弃用了
我试图找出发行说明,其中描述了新版本中的替代方案,但未能做到这一点
请帮我解决这个问题。您可以通过拖动来监听的三个事件是当前的(v4和5.v3及以前的版本不同): 开始-新指针激活后(在鼠标向下或touchstart上)。 拖动-活动指针移动后(在mousemove或touchmove上)。 结束-在活动指针变为非活动状态后(在mouseup、touchend或touchcancel上)。() 所以,您只需要将dragend更改为end
var svg=d3.选择(“主体”)
.append(“svg”)
.attr(“宽度”,500)
.attr(“高度”,300);
var circle=svg.append(“circle”)
.attr(“cx”,100)
.attr(“cy”,100)
.attr(“r”,20)
.attr(“填充”、“钢蓝”)
.call(d3.drag().on(“start”,function()){
d3.选择(此).attr(“填充”、“橙色”)
})
.on(“拖动”,函数(){
d3.选择(this.attr(“cx”,d3.event.x)
.attr(“cy”,d3.event.y)
})
.on(“结束”,函数(){
d3.选择(此).attr(“填充”、“钢蓝”);
})
)
在这段代码中,如果你不从圆心拖动(如沿边拖动),圆会跳入鼠标点,如何使其与偏移一起工作?这是一个非常基本的示例,需要使用拖动主题来避免跳转,我在这里没有使用它,因为问题是关于事件侦听器的。请看这个完整的例子,或者看这个解释。实现主题的最简单方法是将x,y位置数据作为绑定基准的x,y属性(默认主题查找这些属性)。