d3 v4工具提示传递数据d问题

时间:2017-08-02 13:42:28

标签: d3.js text tooltip mouseover

我正在尝试在x轴上鼠标悬停时显示文本。这个stackoverflow post几乎到达那里,除了我无法将数据传递给鼠标悬停时调用的函数。

// Add the X Axis
  svg.append("g")
    .attr("class", "axis")
    .attr("transform", "translate(0," + height + ")")
    .call(d3.axisBottom(x))
    .selectAll("text")
    .style("text-anchor", "end")
    .style("font", "7px times")
    .attr("dx", "-.8em")
    .attr("dy", ".15em")
    .attr("transform", "rotate(-65)")
    .on("mouseover", function(d) {
      return tooltip.style("visibility", "visible")
    })
    .on("mouseout", function(d) {
      return tooltip.style("visibility", "hidden");
    });

  var tooltip = d3.select("#info")
    .append("div")
    .style("position", "absolute")
    .style("z-index", "10")
    // .style("visibility", "hidden")
    .text("a simple tooltip" + d.name);

当我删除d.name时,它有效。我无法将d传递给工具提示。

也许我需要使用我尝试过的.data(data).enter(),但也许我没有正确使用它。

谢谢,

https://d3js.org/d3.v4.min.js是我使用的唯一库。

1 个答案:

答案 0 :(得分:1)

您是否可以在鼠标悬停回调中设置文字,您可以访问d

// Add the X Axis
svg.append("g")
    .attr("class", "axis")
    .attr("transform", "translate(0," + height + ")")
    .call(d3.axisBottom(x))
    .selectAll("text")
    .style("text-anchor", "end")
    .style("font", "7px times")
    .attr("dx", "-.8em")
    .attr("dy", ".15em")
    .attr("transform", "rotate(-65)")
    .on("mouseover", function(d) {
        return tooltip
            .style("visibility", "visible")
            .text("a simple tooltip" + d.name);
    })
    .on("mouseout", function(d) {
        return tooltip.style("visibility", "hidden");
    });

var tooltip = d3.select("#info")
    .append("div")
    .style("position", "absolute")
    .style("z-index", "10")
    // .style("visibility", "hidden")
    // .text("a simple tooltip" + d.name);