У меня возникли проблемы с выполнением основной операции в d3: обновление дочерних элементов для изменяющегося набора данных. Детский элемент должен быть «добавлен» для первого прохода и изменен для последующих проходов. Для родительского элемента, который можно управлять с помощью операции «ввести», но я не вижу, как его использовать для детей. Я использую макет пузыря, но я не думаю, что это проблема.Обновление дочерних элементов данных в d3.js
var node = vis.selectAll("g.node").data(
bubble.nodes(classes(json)).filter(function (d) {
return !d.children;
}), function (d) {
return d.className;
});
node.select("circle").attr("r", function (d) {
return d.r;
});
node.enter().append("g").attr("class", "node")
.attr("transform", function (d) {
return "translate(" + d.x + "," + d.y + ")";
});
node.append("circle").attr("r", function (d) {
return d.r;
});
Вот jsfiddle http://jsfiddle.net/johnpoole/xsafy/131/ с кодом бега.
Непонятно, что вы пытаетесь сделать. Группа, которую вы добавляете к «родительскому», как представляется, не используется ни для чего, и круги, по-видимому, не будут выбраны при обновлении. Чего вы пытаетесь достичь? –
Спасибо за ответ. Я пытаюсь создать макет пузыря и изменить радиус кругов во время обновления. Круг/дочерний элемент добавляется к узлу/родительскому объекту для отображения круга и его радиуса. Проблема не в выборе кругов во время обновления (со ссылкой на новый радиус). –
Почему вы добавляете элементы 'g'? Просто добавить круги должно быть достаточно. –