如何避免双击谷歌地图中的标记?

时间:2014-01-17 21:46:49

标签: javascript google-maps

我创建了一个弹出框。当我单击谷歌地图上的标记时。弹出窗口显示取消按钮。点击取消按钮只是隐藏这个弹出框。我的问题是,当我双击这个标记弹出框正在生成并逐个重叠。所以取消不起作用。怎么避免这个?

示例代码:

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);

    });
}

1 个答案:

答案 0 :(得分:0)

事件不会同时触发,因此您可以检查是否存在markerPopup,如果已经存在则提前返回。

if (document.getElementById("markerPopup")) {
    // they must have double clicked, so do nothing
    return;
}

如果您一次需要在地图上弹出多个弹出窗口,则需要为每个创建的弹出窗口分配唯一的ID。然后,您可以将这些ID作为属性附加到按钮上,这样可以知道要杀死哪一个。