D3 mousedover圈的坐标

时间:2014-07-02 13:50:48

标签: javascript svg d3.js

我试图访问mousedover圈子的坐标,以便可以在同一位置绘制和制作新的圆圈。当用户点击页面时添加圆圈,因此在分配给它们的鼠标悬停属性上添加圆圈。

我试图通过

访问当前圈子的x,y位置
var y = d3.select(currentCircle).attr("cy");

其中currentCircle是

var currentCircle = this;

但是,它始终提供null

currentCircle肯定拥有正确的SVG元素,因为调用console.log(currentCircle)时我们得到了

<circle transform=​"translate(590,358)​" r=​"10" style=​"fill:​ rgb(0, 0, 0)​;​">​</circle>​

在控制台中。

如何获得圆圈的x和y坐标?

链接中整个设置的小提琴

http://jsfiddle.net/Tu3EZ/

1 个答案:

答案 0 :(得分:1)

罗伯特的评论:

原来我忘了在初始化时为圆圈设置cx和cy,所以这些属性在读取时显然为空。

.attr("cx", x)
.attr("cy", y)

设置初始圆圈pos而不是

.attr("transform", function(d, i) { return "translate("+x+","+y+")"; })

Updated Fiddle