Javascript 如何避免在谷歌地图中双击标记?
我创建了一个弹出框。当我在谷歌地图上点击一个标记时。弹出窗口显示为“取消”按钮。单击“取消”按钮仅隐藏此弹出框。我的问题是,当我双击此标记时,弹出框正在生成并一个接一个地重叠。因此“取消”不起作用。如何避免这种情况 示例代码:Javascript 如何避免在谷歌地图中双击标记?,javascript,google-maps,Javascript,Google Maps,我创建了一个弹出框。当我在谷歌地图上点击一个标记时。弹出窗口显示为“取消”按钮。单击“取消”按钮仅隐藏此弹出框。我的问题是,当我双击此标记时,弹出框正在生成并一个接一个地重叠。因此“取消”不起作用。如何避免这种情况 示例代码: makeInfoWindowEvent(map, marker); function makeInfoWindowEvent(map, marker) { google.maps.event.addListener(marker, 'click', funct
makeInfoWindowEvent(map, marker);
function makeInfoWindowEvent(map, marker) {
google.maps.event.addListener(marker, 'click', function() {
var markerPopup = document.createElement("div");
markerPopup.id = 'markerPopup';
markerPopup.className = 'markerPopup';
markerPopup.innerHTML = "This is a test message";
var cancel = document.createElement("div");
cancel.id = 'cancel';
cancel.className = 'cancel';
markerPopup.appendChild(cancel);
cancel.onclick= function () {
var divbg = document.getElementById('markerPopup');
divbg.style.visibility = "hidden";
}
document.getElementById('map-canvas').appendChild(markerPopup);
});
}
事件不会同时触发,因此您可以检查markerPopup是否存在,如果已经存在,则可以提前返回
if (document.getElementById("markerPopup")) {
// they must have double clicked, so do nothing
return;
}
如果一次在地图上需要多个弹出窗口,则需要为每个创建的弹出窗口分配唯一的ID。然后,您可以将这些ID作为属性附加到按钮上,这样可以知道要杀死哪一个。您一次只想在地图上有一个标记吗?