0

嗨,我正在玩 d3,请参阅以下代码,我用来绘制以我的数据为界的圆圈,而不是为每个圆圈添加文本。它对我来说很好,但是根据我的要求,我想在圆圈的鼠标悬停事件中更改对这个附加文本 e 的访问,实际上我希望将附加文本的颜色更改为黑色以显示这个圆圈被选中。该代码没有给出任何错误,但也没有访问附加的文本,因为没有任何反应。任何建议

 var circles = vis.selectAll("circle").data(sampleData);
 var circleEnter=circles.enter().append("g").append("circle");
 circleEnter.attr("cx", 10)
 .attr("cy", 20)
.on("mouseover", function(d,i)
        {
        d3.select(this).append("text")
         .attr("font-family", "sans-serif")
         .attr("font-size", "14px")
         .attr("fill", "red")
         .html("sometext" 
         );           

       }

    circles.append("text")
    .attr("font-family", "sans-serif")
    .attr("font-size", "14px")
    .attr("fill", "lightgray")
     .html("sometext" 

     });
4

1 回答 1

0

该代码在每个鼠标悬停事件上将一个新的文本节点添加到每个组中。假设添加一次文本并在事件中更改颜色。也可以用css来完成。

circles.append("text")
  .classed('text', true)
  .html("sometext");

CSS:

g .text {
  fill: blue;
}
g:hover .text{
  fill: red;
}

普朗克

于 2016-01-27T22:52:21.953 回答