我正在尝试创建一个可以动态添加和删除节点的图表。可以使用“添加节点”按钮创建新的独立节点,然后我可以使用右键单击上下文菜单选项“创建子节点”创建节点的子节点。可以使用“删除节点”选项删除节点。
我这里有一个工作 fiddle ,其中链接没有箭头来表示方向: http://jsfiddle.net/ztvcb2a4/
我想要完全相同的行为,但箭头表示从父节点到子节点的方向。当我尝试通过附加箭头来修改它时,我遵循与输入和退出选择完全相同的逻辑,但我在使用 exit.remove() 时不断收到此错误。也许我在这里遗漏了一些我无法弄清楚的东西。 “未捕获的类型错误:未定义不是一个函数”
路径变量在函数 update 之外定义为全局变量。
var path = svg.append("svg:g").selectAll("path");
这是函数 update() 内链接的进入和退出选择代码:
path = path.data(force.links(), function(d) { return d.source.id + "-" + d.target.id; })
path.enter().append("svg:path")
.attr("class", "link")
.attr("marker-end", "url(#end)");
path.exit.remove();
修改后的 fiddle : http://jsfiddle.net/427pzrsc/
最佳答案
您需要使用path.exit().remove();
。 exit
时缺少括号。
关于javascript - 无法从带有箭头的 D3 力定向图中删除链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25535510/