Comment puis-je vérifier si une fenêtre contextuelle de dépliant est ouverte?

J'ai vu qu'il y a un événement .isOpen dans la documentation ( méthodes ), mais je ne connais pas très bien son intégration. J'ai essayé quelque chose (horrible) comme ceci:

var marker = L.popup();

if($(marker).isOpen) {
// do something
}
else {
// do nothing
}
0
Pepe 5 avril 2020 à 10:49

3 réponses

Meilleure réponse

Utilisez la méthode .isOpen() qui retourne un booléen.

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

Vérifiez ce violon. La méthode .isOpen() fonctionne comme prévu.

https://jsfiddle.net/73ozvb5s/

1
treecon 5 avril 2020 à 08:22

Essayez d'utiliser la méthode 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
User863 5 avril 2020 à 08:10

Peux-tu essayer

var marker = L.popup();
if(marker.isOpen()) {
// do something
}
else {
// do nothing
}
1
iamhuynq 5 avril 2020 à 07:53