2015-05-20 20 views
0

我有以下代碼...`dragend`是沒有得到所謂的在我的D3應用

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但從未顯示的dragend控制檯消息

更新:

貌似實際問題來源於此...

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); 

當我添加call(drag)到此結束,它會按預期方式記錄日誌,但不允許移動。

+0

適用於我https://jsfiddle.net/9fb0jq04/ –

+0

查看更新信息,以瞭解更多關於JSFiddle的信息 – Jackie

回答

0

該問題與父母g有關,該子女以某種方式覆蓋拖動事件circle。如果我添加了force.drag().on("dragend", dragended);,它似乎按預期工作。