d3.鼠标(mySVG[0][0])真正正确的方式来地址的容器

Is d3.mouse( mySVG[0][0]) really the right way to address the container?

本文关键字:方式 地址 鼠标 mySVG d3      更新时间:2023-09-26

使用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()函数的方式,有一个变量持有元素?

。我自己弄明白了:selection.node()做了这件事。例如:

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