2014-08-30 2 views
-1

Я новичок в d3. и в начале сегодняшнего дня я пробовал пример компоновки d3 force, он работает очень хорошо.Обновить элемент дочернего элемента дочернего элемента в макете силы D3

Но когда я делаю это и делаю каждый узел элементом g и добавляю к нему дочерние circle и text, положение этих детей не обновляется автоматически.

вот 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>

как я думал, последний раз также должен включать text в circle, но нет, почему? Спасибо

+0

[Этот пример ] (http://bl.ocks.org/mbostock/1153292). –

ответ

0

Наконец-то я решил это.

Использовать преобразование - это правильный способ обновить положение детей, чей родитель привязан к данным.

поэтому добавьте text и circle в узел g - это правильный путь.

вот jsfiddle update

ответ на мой второй вопрос,

2-й и 3-й Append является добавление к g, потому что до того, как один линейный код, который

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