我将节点添加到这样的力布局图:如何在D3强制布局中添加复合节点?
var node = vis.selectAll("circle.node")
.data(nodes)
.enter()
.append("circle")
.attr("class", "node")
.attr("cx", function(d) { return d.x; })
.attr("cy", function(d) { return d.y; })
.attr("r", 5)
.style("fill", function(d) { return fill(d.group); })
.call(force.drag);
有没有一种方法来添加复合SVG元素节点?即我想添加一个超链接的每个圆圈,所以我需要的东西是这样的:
<a href="whatever.com"><circle ...></circle></a>
尽管我明白为什么这是为创作工作,它不更新打破?由于append()合并了输入和更新选项,因此每次更新被调用时都不会为旧节点追加一个新的圆圈? – 2014-08-27 22:53:56
我已更新示例以使其更清晰。 selection.append不会合并任何选择,但selection.enter()。append会自动将元素添加到更新选择中。我最初的例子有vis.selectAll(...).data(...).enter()。append(...)。这只会将元素添加到输入的选择中,所以在那里没有问题;关键在于输入选择最初只包含尚不存在的* new *元素的占位符。 – 2014-08-29 00:18:32