使用一些d3 js进行工具提示。这是有效的代码:`
var textToolTip = nodeEnter
.append("text")
.attr("class", "textToolTip")
.attr("visibility", "hidden")
.attr("y", function(d) {
if (d.parent != null) {
d.x_pos = d.x;
d.parent_x_pos = d.parent.x;
}
if (d.parent_x_pos != null) {
return (d.x_pos + d.parent_x_pos) / 2 - d.x_pos;
}
})
.attr("x", -90)
.append("div")
.text(function(d) {
console.log(d.data);
return d.data.extra_info;
});
`
然后,在其他元素中,我在鼠标悬停时将textTooltip.visibility返回到可见等等。关键是,现在当我将鼠标悬停时,文本会显示出来,但是如果我做了var textToolTip = nodeEnter
.append("div").append("text").....
时,鼠标悬停时什么也不会显示,控制台将显示相同的文本元素,但只有一个div,且没有任何属性包装。
我要在文本前附加一个div,因为我想给我的文本一个容器,以便在溢出时可以换行,如果仅用文本SVG元素就可以做到这一点,请告诉我如何:)我已经尝试过可能是同一件事的10种组合,但只是交换attr和附加顺序,附加div然后附加文本对我来说不起作用,甚至.append(div).text(...)都没有”工作