【问题标题】:How to avoid double click on a marker in google map?如何避免双击谷歌地图中的标记?
【发布时间】:2014-01-17 21:46:49
【问题描述】:

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

示例代码:

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

    });
}

【问题讨论】:

  • 您一次只想在地图上显示一个标记吗?

标签: javascript google-maps


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2014-07-27
    • 2023-03-16
    • 1970-01-01
    • 1970-01-01
    • 2012-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-07
    相关资源
    最近更新 更多