Javascript mouse(mySVG[0][0])真的是寻址容器的正确方法吗?

Javascript mouse(mySVG[0][0])真的是寻址容器的正确方法吗?,javascript,d3.js,reference,Javascript,D3.js,Reference,我使用D3js编写了一个小型原型,将操场包装成一个游戏对象: var Game = function(){ this.svg = d3.select( "body").append( "svg") .attr( "width", 500) .attr( "height", 500) ; _this = this; this.svg.on( 'click', function(){ _this.click()}); 要捕获SVG

我使用D3js编写了一个小型原型,将操场包装成一个
游戏
对象:

var Game = function(){
    this.svg = d3.select( "body").append( "svg")
        .attr( "width",  500)
        .attr( "height", 500)
    ;

    _this = this;
    this.svg.on( 'click', function(){ _this.click()});
要捕获SVG上的鼠标点击,我想使用D3的方法:

Game.prototype.click = function(){
    var M = d3.mouse( this.svg[0][0]);
    console.log( "Clicked: "+M[0]+':'+M[1]);
}
我真的怀疑我在实验后想到的
this.svg[0][0]
,是否是本例中传递容器对象的预期方式


问题:在D3js中,将容器传递到
d3.mouse()
函数的正确方法是什么,该函数使用一个变量来保存元素?

Upd。我自己明白了:做那件事。i、 e:

var M = d3.mouse( this.svg.node());

var M=d3。鼠标(这个)
应该可以工作;选中@FernOfTheAndes,
在我的示例中,这是
游戏
,在链接的示例中是
窗口
。所以,不必了。要清楚,
这个.svg[0][0]
是从单个元素d3选择访问DOM节点的一种完全可以接受的方式,它只会产生相当模糊的代码。因此,我倾向于选择更直观、可读性更强的
selection.node()