我正在尝试访问mousedover圆的坐标,以便可以在同一位置绘制新的圆并为其设置动画。当用户单击页面时,将添加圆圈,因此将其分配给它们的mouseover属性被添加。

我正在尝试访问用鼠标悬停在当前圆的x,y位置

var y = d3.select(currentCircle).attr("cy");


currentCircle在哪里

var currentCircle = this;


但是,它总是给出null

当调用console.log(currentCircle)时,currentCircle绝对包含正确的SVG元素,我们得到

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

在控制台中。

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

链接中整个设置的小提琴

http://jsfiddle.net/Tu3EZ/

最佳答案

从罗伯特的评论:

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

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


设置初始圆位置而不是

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


Updated Fiddle

关于javascript - D3鼠标悬停圆的坐标,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24532935/

10-09 19:07