Закрыть все всплывающие окна с помощью Leaflet.js

Я работаю над картой, используя Leaflet.js, которая использует несколько маркеров (в конце концов будет ~ 40 маркеров). Каждый маркер имеет соответствующее всплывающее окно с подробными сведениями. Поведение Leaflet.js по умолчанию, по-видимому, заключается в том, чтобы автоматически открыть хотя бы одно всплывающее окно маркера (я думаю, последний указанный маркер).

Я хотел бы, чтобы все всплывающие окна были закрыты при начальной загрузке страницы карты, чтобы пользователи могли щелкнуть маркеры, чтобы открыть всплывающие окна. Кто-нибудь знает как это сделать? У меня есть прототип здесь:

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

Спасибо.

Ответы

Ответ 1

Существует чистый метод из вашего объекта map, чтобы закрыть все открытые всплывающие окна

map.closePopup();

Ответ 2

Мне удалось решить мою проблему по этой части кода:

$(".leaflet-popup-close-button")[0].click();

Надеюсь, что это поможет кому-то в будущем.

Ответ 3

Просто удалите свои вызовы .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");

Поведение кликов по-прежнему будет (когда пользователи нажмут на эти маркеры, всплывающие окна все равно появятся), но всплывающие окна не будут видны при загрузке страницы.

Ответ 4

$(".leaflet-popup-close-button").click()

попробуйте это после завершения загрузки карты.