无法使用箭头从D3力导向图中删除链接

时间:2014-08-27 19:29:38

标签: javascript d3.js graph directed-graph

我正在尝试创建一个可以动态添加和删除节点的图表。可以使用"添加节点"创建新的独立节点。按钮然后我可以使用右键单击上下文菜单选项创建节点的子项"创建一个孩子" 。可以使用“删除节点”选项删除节点。

我这里有一个工作小提琴,其中的链接没有箭头来表示方向: 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/

1 个答案:

答案 0 :(得分:2)

您需要使用path.exit().remove();。您缺少exit上的括号。