D3.js `dragend`在我的d3应用程序中没有被调用
我有以下代码D3.js `dragend`在我的d3应用程序中没有被调用,d3.js,D3.js,我有以下代码 var drag = d3.behavior.drag() .on("dragstart", function(d, i){ console.log("Started dragging "+d.x+":"+JSON.stringify(i)); }) .on("dragend", function(){ console.log("Ended
var drag = d3.behavior.drag()
.on("dragstart", function(d, i){
console.log("Started dragging "+d.x+":"+JSON.stringify(i));
})
.on("dragend", function(){
console.log("Ended dragging");
});
....
var circle = elemEnter.append("circle")
.attr("r", function(d){
// return d.r
return 30;
})
.attr("stroke", "black")
.attr("fill", "blue")
.call(drag)
我看到dragstart被调用,但Dragen控制台消息从未显示
更新:
看起来实际的问题来自于这个
var force = d3.layout.force()
.charge(-600).linkDistance(80).size([width, height]);
var elemEnter = svg.selectAll(".node")
.data(graph.nodes).enter()
.append("g")
.call(force.drag);
当我将
调用(拖动)
添加到此结尾时,它会按预期记录,但不允许移动。问题与父g
以某种方式覆盖子圆上的拖动事件有关。如果我添加了force.drag().on(“dragend”,dragended)代码>它似乎按预期工作。对我有效。有关仍在JSFIDLE上工作的更多信息,请参阅更新