Как проверить, открыто ли всплывающее окно? - PullRequest
0 голосов
/ 05 апреля 2020

Как я могу проверить, открыто ли всплывающее окно с листовкой?

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

var marker = L.popup();

if($(marker).isOpen) {
// do something
}
else {
// do nothing
}

Ответы [ 3 ]

1 голос
/ 05 апреля 2020

Попробуйте использовать isPopupOpen() метод

var map = L.map('Lmap').setView([60, 10], 10);

L.tileLayer('http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
  maxZoom: 18,
  fadeAnimation: false,
  zoomAnimation: false,
  markerZoomAnimation: false,
  attribution: '&copy; <a href="http://osm.org/copyright">OpenStreetMap</a> contributors',
}).addTo(map);

var marker = L.marker([60, 10])
  .addTo(map)
  .bindPopup('<p>Hello world!<br />This is a nice popup.</p>');

function checkPopop() {
  document.getElementById('popup-status').innerHTML = marker.isPopupOpen()
}
#Lmap {
  position: absolute;
  top: 35px;
  left: 0;
  width: 100%;
  height: 80%
}
<link rel="stylesheet" href="https://unpkg.com/leaflet@1.3.1/dist/leaflet.css" />
<script src="https://unpkg.com/leaflet@1.3.1/dist/leaflet.js"></script>

<div id="Lmap"></div>

<button onclick="checkPopop()">check</button>
<span id="popup-status"></span>
1 голос
/ 05 апреля 2020

Используйте метод .isOpen(), который возвращает логическое значение.

var myPopup = L.popup();
...
if (myPopup.isOpen()) {
   ...
}

Проверьте эту скрипку. Метод .isOpen() работает как ожидалось.

https://jsfiddle.net/73ozvb5s/

1 голос
/ 05 апреля 2020

Можете ли вы попробовать

var marker = L.popup();
if(marker.isOpen()) {
// do something
}
else {
// do nothing
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...