我正在使用Leaflet.js在地图上工作,它使用了许多标记(最终会有~40个标记)。每个标记都有一个带有详细信息的相关弹出框Leaflet.js的默认行为似乎是自动打开至少一个标记的弹出窗口(我相信最后列出的标记)。
我希望 all 在初始加载地图页面时关闭弹出窗口,以便用户必须单击标记才能打开弹出窗口。有谁知道如何做到这一点?我有一个原型:
http://dev.monographic.org/maps/prototype-10.html
谢谢。
答案 0 :(得分:41)
您的 地图 对象中有一种干净的方法可以关闭所有打开的弹出窗口
map.closePopup();
答案 1 :(得分:15)
我设法用这段代码解决了我的问题:
$(".leaflet-popup-close-button")[0].click();
希望将来帮助某人。
答案 2 :(得分:5)
只需移除您对.openPopup()
的电话。
而不是
L.marker([57.70887, 11.97456]).addTo(map).bindPopup("<b>Ideal Festival</b><br />2004").openPopup();
使用
L.marker([57.70887, 11.97456]).addTo(map).bindPopup("<b>Ideal Festival</b><br />2004");
点击行为仍然存在(当用户点击这些标记时,弹出窗口仍会显示),但是当页面加载时弹出窗口将不可见。
答案 3 :(得分:1)
$(".leaflet-popup-close-button").click()
在地图加载完成后尝试此操作。
答案 4 :(得分:0)
map.closePopup();
对我不起作用,关闭了最新的弹出窗口并不是全部。
用户2304819建议的概括:
var ButtonremoveNotidfications = L.easyButton({
id: 'ButtonremoveNotidfications',
states: [{
stateName: 'Show',
icon: '<strong>Clear notifications</strong>',
title: 'Show',
onClick: function (btn) { //Below is the closing module
var aa = $(".leaflet-popup-close-button").length
if (aa > 0) {
for (var i = 0; i < aa; i++) {
$(".leaflet-popup-close-button")[i].click();
}
}
}
}]
});
ButtonremoveNotidfications.button.style.width = widthbuttonstyle;
ButtonremoveNotidfications.button.style.height = heightbuttonstyle;
ButtonremoveNotidfications.button.style.color = 'blue';
ButtonremoveNotidfications.addTo(map);
答案 5 :(得分:0)
popup.removeFrom(map)
对我有用的是