我正在尝试访问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/