Javascript 从鼠标到触摸Android的D3.js
我正试图使我的可视化手机兼容,但我正在努力与触摸事件 从下面的示例中,我成功地使事件侦听器工作,但是我无法获得双击Div的Div信息(例如,它的ID): 对于d3.js dblClick,它很简单,因为这是单击的元素: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.
...
.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
始终是未定义的
。