Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/440.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用disableDefaultUI双击缩放:true_Javascript_Google Maps - Fatal编程技术网

Javascript 使用disableDefaultUI双击缩放:true

Javascript 使用disableDefaultUI双击缩放:true,javascript,google-maps,Javascript,Google Maps,在我的应用程序中,所有默认功能都被禁用: disableDefaultUI: true 并单击“绑定到placeMarker”函数 mapObj.addListener('click', (event) => { this.placeMarker(event.latLng) // creates a marker, works fine. } ) 我试图实现的是,我希望在单击dblclick时缩放贴图(与默认功能相同),但我不希望双击时触发click l

在我的应用程序中,所有默认功能都被禁用:

disableDefaultUI: true
并单击“绑定到placeMarker”函数

mapObj.addListener('click',
    (event) => {
        this.placeMarker(event.latLng) // creates a marker, works fine.
    }
)
我试图实现的是,我希望在单击dblclick时缩放贴图(与默认功能相同),但我不希望双击时触发click listener

mapObj.addListener('dblclick',
    (event) => {
        console.log("This doesn't fire when I double click")
        // I expect only this to fire.
    }
)

当我双击时,这不会触发,但单击侦听器功能会起作用。

您应该将其设置为事件侦听器

mapObj.addEventListener('dblclick',
    (event) => {
        console.log("This should fire when I double click")
    }
)

disableDefaultUI
顾名思义,它会禁用默认UI,而不是默认手势行为,因此没有理由禁用双击缩放(示例如下)。您应该检查是否未使用
禁用双击缩放
或将
手势处理
设置为
,但我们无法确定,因为您尚未共享代码的该部分

关于双击时触发的单击侦听器,最好的方法是在单击侦听器中设置超时,并在双击侦听器中清除超时。您需要决定超时长度(此处设置为200ms)

函数初始化(){
var mylatng=newgoogle.maps.LatLng(46.2,6.17);
变量映射选项={
缩放:4,
中心:myLatLng,
mapTypeId:google.maps.mapTypeId.ROADMAP,
disableDefaultUI:true,
};
var map=new google.maps.map(document.getElementById(“地图画布”),mapOptions);
var update_timeout=null;
google.maps.event.addListener(映射,'click',函数(){
update_timeout=setTimeout(函数(){
console.log('click');
}, 200);
});
google.maps.event.addListener(映射'dblclick',函数(){
clearTimeout(更新超时);
console.log('双击')
});
}
#地图画布{
高度:180像素;
}


我在寻找setTimeout以外的功能……但我决定用这种方法解决。您的答案是没有锁定第二次单击。我另外添加了一个“clickLock”变量,现在一切正常。锁定第二次单击?