可能对所有地图有效,话不多说 直接上代码
var lastSelectedTowerId = -1; //全局变量
var lastSelectTowerTime = -1; //全局变量
marker.addEventListener("click", function () {
a = 0; //进行判断是不是双击
if (lastSelectedTowerId && lastSelectTowerTime) {
var time = new Date().getTime();
var t = time - lastSelectTowerTime;
if (lastSelectedTowerId == data.towerId && t < 300) {
console.log(123);
}else{
a =1; //如果是单机则改为1;如果是方法的话需要执行,导致时间会边长,只能赋值;不能走方法
}
}
b = 0; //因为双击其实就是单机了两次,所以会执行两边函数,所以进行标志只运行一遍
//setTimeout 是异步的,所以延迟300 那时候双击 也就值变了,所以内存的a的值也变了
setTimeout(function(){
if(b==0){
if(a==1){
console.log(456);
b=1;
}
}},300)
lastSelectedTowerId = data.towerId;
lastSelectTowerTime = new Date().getTime();
});
偶然发现这样也可以… 但是这样会先走单机事件然后走9双击 (不实用)
marker.addEventListener("dblclick", function (e) {
alert(1)
});