2012-06-27 52 views
0

不正确的链接我有一个D3力向图先用几个节点显示。每个节点都有一个点击处理程序,它将进一步扩展图形并动态地向点击节点添加更多节点和链接。每个节点也有一个SVG矩形形状。因为新的链路和节点添加到现有的图表,链接出现在点击的节点之上,因为SVG是“画家”的模式。因此,我使用了d3.selectAll()。filter()。sort()以正确的顺序放置DOM节点。除了节点和链接在有向图上放错位置之外,这是有效的。有没有办法使用sort(),但也保持force.nodes()和force.links()数据同步?筛选/排序造成力向图

更新:我创建的jsfiddle证明这种情况的发生。点击几下创建新节点后,链接变得不稳定。如果以“reorder_nodes_and_links()”被注释掉的号召,图表是稳定的,但在链接上,因为DOM秩序的节点之上呈现。

http://jsfiddle.net/bobfaist/MURwA/

回答

1

selection.insert需要告诉它之前,其他的东西插入事物的第二个参数。

我无法看到年小提琴的权利,但这里是从一个类似的项目什么的。

这将插入任何归类为一个节点之前新线。

lines.enter().insert("svg:line", ".node") 

https://github.com/mbostock/d3/wiki/Selections#wiki-insert

+0

感谢您的帮助。很棒。在阅读文档时完全错过了。我不需要filter()。sort(),因为insert()API现在具有所需的行为。 –