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上工作的更多信息,请参阅更新