我尝试在我的力有向图中添加一些标签,但由于某种原因,当我尝试扩展/缩小我的节点集时,我不知道我不能“删除”它们。
我的标签代码如下:
var labels = labelg.selectAll('text .textlabel').data(data.links);
labels.exit().remove();
labels.enter().append('text')
.attr('class','textlabel')
.attr("x", function(d) {return d.size ? (d.source.group_data.x + d.target.group_data.x) / 2 : (d.source.x + d.target.x)/2 ;})
.attr("y", function(d) { return (d.size ? (d.source.group_data.y + d.target.group_data.y) / 2 : (d.source.y + d.target.y))/2 ; })
.attr("text-anchor", "middle")
.text(function(d) {return d.reason;});
在我的“tick”功能中,我定位如下
force.on("tick", function() {
//... node & link stuff ...
labels
.attr("x", function(d) { return (d.size ? (d.source.group_data.x + d.target.group_data.x) / 2 : (d.source.x + d.target.x)/2) ; })
.attr("y", function(d) { return (d.size ? (d.source.group_data.y + d.target.group_data.y) / 2 : (d.source.y + d.target.y))/2 ; });
});
现在,如果我单击一个节点,该组将展开并显示节点之间的标签。但是,如果我扩展第二组和/或收缩第一组,则不会删除标签。
为了更好地理解我的问题,我做了一个小提琴http://jsfiddle.net/NVmf5/
有人可以帮助我吗。
任何帮助,将不胜感激。