使用Leaflet.js关闭所有弹出窗口

时间:2013-12-28 15:27:12

标签: javascript map popup

我正在使用Leaflet.js在地图上工作,它使用了许多标记(最终会有~40个标记)。每个标记都有一个带有详细信息的相关弹出框Leaflet.js的默认行为似乎是自动打开至少一个标记的弹出窗口(我相信最后列出的标记)。

我希望 all 在初始加载地图页面时关闭弹出窗口,以便用户必须单击标记才能打开弹出窗口。有谁知道如何做到这一点?我有一个原型:

http://dev.monographic.org/maps/prototype-10.html

谢谢。

6 个答案:

答案 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)

对我有用的是