Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
D3.js d3 v4 forceSimulation节点在重新启动后不再移动()_D3.js - Fatal编程技术网

D3.js d3 v4 forceSimulation节点在重新启动后不再移动()

D3.js d3 v4 forceSimulation节点在重新启动后不再移动(),d3.js,D3.js,作为理解d3如何工作的练习,我一直在从头开始构建它,从我发现的各种示例中拼凑而成 我的问题是,在刷新数据后,节点不能再被拖动,甚至不能移动,这似乎是我无法弄清的。线会刷新,而不是节点。如果在再次提交表单之前拖动一些节点,效果会更明显 下面的示例演示了这个问题,我已经注释掉了我在本地使用的WebSocket代码,并替换为一些静态数据 您需要全屏查看: 谢谢你的帮助 编辑以添加: 因此,我目前的临时解决方案是在更新之前删除SVG中的所有节点,但这并不理想 function update_graph

作为理解d3如何工作的练习,我一直在从头开始构建它,从我发现的各种示例中拼凑而成

我的问题是,在刷新数据后,节点不能再被拖动,甚至不能移动,这似乎是我无法弄清的。线会刷新,而不是节点。如果在再次提交表单之前拖动一些节点,效果会更明显

下面的示例演示了这个问题,我已经注释掉了我在本地使用的WebSocket代码,并替换为一些静态数据

您需要全屏查看:

谢谢你的帮助

编辑以添加:

因此,我目前的临时解决方案是在更新之前删除SVG中的所有节点,但这并不理想

function update_graph(data) {
    svg.selectAll(".node").remove();
    ...

合并更新后,不会将合并结果分配回节点和链接

link = link.merge(line)
node = node.merge(circle)