1
我朝着我d3.js一個節點圖使用下面的代碼:d3js移動節點,而無需拖動
d3.select("#"+ nodeid).attr("x",x);
d3.select("#"+ nodeid).attr("y",y);
這工作得很好,但是當我重新開始的節點上拖動,它的跳躍'回到原來的位置,並從那裏開始移動。
任何想法我在做什麼錯在這裏?
我朝着我d3.js一個節點圖使用下面的代碼:d3js移動節點,而無需拖動
d3.select("#"+ nodeid).attr("x",x);
d3.select("#"+ nodeid).attr("y",y);
這工作得很好,但是當我重新開始的節點上拖動,它的跳躍'回到原來的位置,並從那裏開始移動。
任何想法我在做什麼錯在這裏?
我結束了剛剛添加該的代碼以及
d3.select("#"+ nodeid).data([{x: x, y: y}]);
您正在更新DOM元素(圖形),但不是基礎數據,並且dragstart事件正在使用仍保存在數據中的原始位置。
嘗試這樣:
force.setNodeCoords = function (id, x, y) {
var fnodes = force.nodes();
fnodes[id].x = x;
fnodes[id].y = y;
force.nodes(fnodes);
svg.selectAll("circle.node")
.attr("cx", function(d) { return d.x; })
.attr("cy", function(d) { return d.y; });
};
(其中svg
是您的SVG或其他父DIV和node
是班級的節點)
你可能也想更新的行/鏈接!
比你了這一點。我確定它的工作原理,但我發現一個簡單的修復。 – 2012-08-07 01:19:21