2014-08-30 92 views
-1

我是d3新手。今天早些时候我已经尝试了一些d3强制布局的例子,它工作的很好。更新节点'D3强制布局中的子元素位置

但是,当我DIY它,并使每个节点一个g元素,并追加子circletext它,这些孩子的位置不会自动更新。

这里是jsFiddle

顺便提及,在本例中,我请node.append( 'someElement')的3倍

-first时间: node.append('g')>变得<g></g>

- 第二次:node.append('circle')>它变成<g><circle></circle></g>

- 最后时间:node.append('text')>它变成<g><circle></circle><text></text></g>

正如我以为,上次还应该包括textcircle,但不是,为什么?谢谢

+0

[这个例子](http://bl.ocks.org/mbostock/1153292)应该有所帮助。 – 2014-08-30 10:30:26

回答

0

最后我解决了这个问题。

使用转换是更新父级绑定到数据的子级的位置的正确方法。

所以追加textcircleg节点是正确的方法。

这里是jsfiddle update

回答我的第二个问题是,

第二和第三附加是附加到g因为之前有一行代码,

node = node.enter() 
     .append("g") 
     .attr("class", "node");