d3.mouse(mySVG [0] [0])真的是解决容器问题的正确方法吗?

时间:2014-05-03 12:30:48

标签: javascript d3.js reference

使用D3js编写一个小型原型,我把操场包裹成Game个对象:

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()函数的正确方式是什么,有一个varialbe持有该元素?

1 个答案:

答案 0 :(得分:1)

<强> UPD 即可。想出了自己:selection.node()做了什么。即:

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