를 끌어없이 노드를 이동 :d3js 다음 코드를 사용하여 그래프 내 d3.js의 노드를 이동하고있어
d3.select("#"+ nodeid).attr("x",x);
d3.select("#"+ nodeid).attr("y",y);
이 잘 작동하지만 다시 노드에서, 그것 점프를 끌기 시작할 때 다시 원래 위치로 돌아가 거기에서 움직이기 시작합니다.
내가 여기서 잘못하고있는 아이디어가 있습니까?
를 끌어없이 노드를 이동 :d3js 다음 코드를 사용하여 그래프 내 d3.js의 노드를 이동하고있어
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
이 노드의 클래스)
당신은 아마 또한 라인을 업데이트 할 수 있습니다 /모래밭!
당신은 매우 많은이에 대한보다. 그것이 작동하는지 나는 확실하다. 그러나 나는 쉬운 수정을 발견했다. –