我在节点上有一个带有标签的力导向图。为了使所有内容井井有条,我将每个圈子/标签对保留在<g>
元素中。
棘手的部分是,在双击节点时,我向图表添加更多点,并再次运行此功能 - 这意味着我开始获取重复的文本元素。
有没有办法将append("text")
置于同一enter()
范围内,但是将其作为circle
的兄弟而不是作为孩子追加?
我看了这个答案,这有助于我理解我应该做什么,但我不知道如何让两个人都成为兄弟姐妹... D3js force duplicate nodes on enter()
node.enter().append("g")
.attr("class", "node")
.call(drag)
.append("circle")
.attr("r", 10)
.style("fill", function(d) {
return publisherScale(d.publisher);
})
.style("stroke", "rgba(255,255,255,.8)");
node.append("text")
.attr("dy", ".35em")
.attr("dx", 10)
.style("font-size", nominal_text_size + "px")
.text(function(d) {
return '\u2002' + d.name
});