d3.append(“ text”)可以正常工作,但是.append(“ div”)。append(“ text”)不能

时间:2019-03-02 19:35:52

标签: javascript css d3.js

使用一些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(...)都没有”工作

0 个答案:

没有答案