Javascript 从鼠标到触摸Android的D3.js

Javascript 从鼠标到触摸Android的D3.js,javascript,android,jquery,d3.js,Javascript,Android,Jquery,D3.js,我正试图使我的可视化手机兼容,但我正在努力与触摸事件 从下面的示例中,我成功地使事件侦听器工作,但是我无法获得双击Div的Div信息(例如,它的ID): 对于d3.js dblClick,它很简单,因为这是单击的元素: ... .on("dblclick", doubleClickFunction); function doubleClickFunction(){ var id = this.id; } 有什么办法可以解决这个问题吗?我最终找到了答案。在本例中,有一个辅助功能: d3.

我正试图使我的可视化手机兼容,但我正在努力与触摸事件

从下面的示例中,我成功地使事件侦听器工作,但是我无法获得双击Div的Div信息(例如,它的ID):

对于d3.js dblClick,它很简单,因为这是单击的元素:

...
.on("dblclick", doubleClickFunction);
function doubleClickFunction(){
   var id = this.id;
}

有什么办法可以解决这个问题吗?

我最终找到了答案。在本例中,有一个辅助功能:

d3.selection.prototype.dblTap = function(callback) {
  var last = 0;
  return this.each(function() {
    d3.select(this).on("touchstart", function(e) {
        if ((d3.event.timeStamp - last) < 500) {
          //Touched element
          console.log(this);
          return callback(e);
        }
        last = d3.event.timeStamp;
    });
  });
}
d3.selection.prototype.dblTap=函数(回调){
var last=0;
返回此值。每个(函数(){
d3.选择(此).on(“touchstart”,功能(e){
如果((d3.event.timeStamp-last)<500){
//接触元素
console.log(this);
返回(e);
}
last=d3.event.timeStamp;
});
});
}
如果将console.log(this)添加到正在运行的代码中,您将看到每次双击该元素时都会记录该元素本身


我希望这对将来的人有所帮助。

是否有办法检测双击的位置(即,
x
y
坐标)?传递给回调的参数
e
始终是
未定义的