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”变量,现在一切正常。锁定第二次单击?