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作为属性附加到按钮上,这样可以知道要杀死哪一个。

您一次只想在地图上有一个标记吗?