我创建了一个弹出框。当我单击谷歌地图上的标记时。弹出窗口显示取消按钮。点击取消按钮只是隐藏这个弹出框。我的问题是,当我双击这个标记弹出框正在生成并逐个重叠。所以取消不起作用。怎么避免这个?
示例代码:
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);
});
}
答案 0 :(得分:0)
事件不会同时触发,因此您可以检查是否存在markerPopup,如果已经存在则提前返回。
if (document.getElementById("markerPopup")) {
// they must have double clicked, so do nothing
return;
}
如果您一次需要在地图上弹出多个弹出窗口,则需要为每个创建的弹出窗口分配唯一的ID。然后,您可以将这些ID作为属性附加到按钮上,这样可以知道要杀死哪一个。