Javascript 使用传单.js关闭所有弹出窗口
我正在使用传单.js制作一张地图,该地图使用了许多标记(最终将有约40个标记)。每个标记都有一个包含详细信息的相关弹出窗口。js的默认行为似乎是自动打开至少一个标记的弹出窗口(我相信是最后列出的标记) 我希望所有的弹出窗口都在地图页面的初始加载时关闭,因此用户必须单击标记才能打开弹出窗口。有人知道怎么做吗?我这里有一个原型: 多谢各位Javascript 使用传单.js关闭所有弹出窗口,javascript,map,popup,Javascript,Map,Popup,我正在使用传单.js制作一张地图,该地图使用了许多标记(最终将有约40个标记)。每个标记都有一个包含详细信息的相关弹出窗口。js的默认行为似乎是自动打开至少一个标记的弹出窗口(我相信是最后列出的标记) 我希望所有的弹出窗口都在地图页面的初始加载时关闭,因此用户必须单击标记才能打开弹出窗口。有人知道怎么做吗?我这里有一个原型: 多谢各位 $(".leaflet-popup-close-button").click() 在地图加载完成后尝试此操作。只需删除对.openPopup()的调用即可 而
$(".leaflet-popup-close-button").click()
在地图加载完成后尝试此操作。只需删除对
.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).bindpup(“理想节日
2004”).openPopup();
使用
L.marker([57.70887,11.97456]).addTo(map).bindpoop(“理想节日
2004”);
单击行为仍将存在(当用户单击这些标记时,弹出窗口仍将出现),但页面加载时弹出窗口将不可见。我通过以下代码解决了我的问题:
$(".leaflet-popup-close-button")[0].click();
希望它对将来的人有所帮助。有一个干净的方法,可以从您的映射对象中关闭所有打开的弹出窗口
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);
var按钮RemoveNotifications=L.easyButton({
id:'按钮删除通知',
国家:[{
stateName:'显示',
图标:“清除通知”,
标题:"秀",,
onClick:function(btn){//下面是关闭模块
变量aa=$(“.传单弹出关闭按钮”)。长度
如果(aa>0){
对于(变量i=0;i
弹出。从(地图)中移除
对我来说是有效的。我认为最好在执行click()之前先检查dom对象是否存在;如果在执行时没有弹出窗口,这真的很有用-我已经将地图设置为允许打开多个弹出窗口。当打开的数量大于3时,我可以使用此关闭最早打开的弹出窗口。这将为您关闭所有弹出窗口或仅关闭一个?谢谢FlorianBoudot@JoSmo就我而言只有一个。我想关闭所有弹出窗口<代码>map.closePopup()代码>仅关闭最后一个。请看:这可能会有帮助:这不会突出它。它会将其完全移除,从而无法再次打开。这可能是人们所期望的,但可能不是
map.closePopup();
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);