2015-03-03 109 views
0

您好我正在嘗試更改鼠標懸停上的SVG文本元素的文本。 我的代碼如下所示:在鼠標懸停上更改SVG文本的文本d3js

  svg.append("text").attr("x",x).attr("y",y).text(a+'C'+(b+1)).attr("fill","blue").attr('text-anchor',"middle").on("mouseover",function(d){ 
       console.log("ho ho"); 
      }); 

我可以看到正在打印的日誌,但我不能改變文本svg.append(「文本」) 誰能給我一些提示?

我也把我的代碼上的jsfiddle http://jsfiddle.net/cma0h6zh/

回答

1

從鼠標懸停處理程序,在那裏你console.log("ho ho"),D3樹立this關鍵字,例如它指向的是接收的事件,即<text>在DOM節點內的案件。

所以,你可以做你想做的事情不管DOM十歲上下的東西,包括在D3選擇它包裹並呼籲D3方法就可以了:

d3.select(this) 
    .attr('fill', 'red') 
    .text('X') 

這裏有一個modified fiddle

相關問題