Javascript d3点击坐标是相对于页面而不是svg的-如何翻译它们(Chrome错误)

Javascript d3点击坐标是相对于页面而不是svg的-如何翻译它们(Chrome错误),javascript,google-chrome,svg,click,d3.js,Javascript,Google Chrome,Svg,Click,D3.js,当一个事件正在进行时,d3.event.x给出了鼠标点击的x坐标的位置,但是相对于整个HTML文档。我尝试使用jQuery的$('svg').position()获取svg的实际位置,但这返回了明显错误的值 是否有一些简单的方法可以找到svg相对于我所忽略的页面的位置?顺便说一下,我正在使用Chrome,以防jQuery问题是一个模糊的浏览器错误 编辑:我在firefox和$('svg')中检查了这一点。position()返回正确的坐标 使用来获取相对于某个容器的坐标,而不是使用,这是浏览器的

当一个事件正在进行时,d3.event.x给出了鼠标点击的x坐标的位置,但是相对于整个HTML文档。我尝试使用jQuery的$('svg').position()获取svg的实际位置,但这返回了明显错误的值

是否有一些简单的方法可以找到svg相对于我所忽略的页面的位置?顺便说一下,我正在使用Chrome,以防jQuery问题是一个模糊的浏览器错误

编辑:我在firefox和$('svg')中检查了这一点。position()返回正确的坐标

使用来获取相对于某个容器的坐标,而不是使用,这是浏览器的本机事件。例如:

var svg = d3.select("body").append("svg")
    .attr("width", 960)
    .attr("height", 500);

var rect = svg.append("rect")
    .attr("width", "100%")
    .attr("height", "100%")
    .on("mousemove", mousemove);

function mousemove(d, i) {
  console.log(d3.mouse(this));
}

我讨厌Chrome有这个问题,但是使用d3.mouse()是一个更好的解决方案。谢谢你的帮助,迈克!