我正在尝试创建一个可以动态添加和删除节点的图表。可以使用"添加节点"创建新的独立节点。按钮然后我可以使用右键单击上下文菜单选项创建节点的子项"创建一个孩子" 。可以使用“删除节点”选项删除节点。
我这里有一个工作小提琴,其中的链接没有箭头来表示方向: http://jsfiddle.net/ztvcb2a4/
我想要完全相同的行为,但是箭头表示从父节点到子节点的方向。当我尝试通过附加箭头来修改它时,我遵循完全相同的进入和退出选择的逻辑,但我继续在exit.remove()的行上得到此错误。可能是我在这里遗漏了一些我无法弄清楚的事情。 "未捕获的TypeError:undefined不是函数"
路径变量在函数更新之外定义为全局变量。
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();
修改过的小提琴: http://jsfiddle.net/427pzrsc/
答案 0 :(得分:2)
您需要使用path.exit().remove();
。您缺少exit
上的括号。