Leaflet.js 마커가 바인딩 된 팝업이 열려 있는지 확인하십시오.
-
26-12-2019 - |
문제
피사체에 따라 마커가 팝업이 열려 있는지 확인할 수 있습니까?
예.
var m = new L.marker([2,1]).addTo(map).bindPopup('test');
.
마커를 클릭하면 분명히 팝업을 열 수 있습니다.
다음과 같은 기능이 있습니까?
if(m.popupOpen() == true) {
// do somehting
}
.
다음을 시도했습니다.
m.on('click', function(e) {
if(m._map.hasLayer(m._popup)) {
// Do something
}
}
.
하지만 매우 flaky입니다.Chrome에서는 Android 브라우저에서 두 번째 클릭으로 발사되므로 실제로 신뢰할 수없는 것이 아닙니다.
이 작업을 수행하는 표준 방법이 있습니까?
감사합니다
해결책
l.marker :
에 포함 된 _popup 객체의 _Isopen 속성에 대해 빠르고 더러운 점검을 수행 할 수 있습니다.var map = L.map('map').setView(L.latLng(0, 0), 0);
var marker = L.marker(L.latLng(0, 0)).addTo(map);
marker.bindPopup("Popup!");
var popup = marker.getPopup(); // returns marker._popup
console.log(popup._isOpen); // false
marker.openPopup();
console.log(popup._isOpen); // true
marker.closePopup();
console.log(popup._isOpen); // false
.
편집 : v1.0.0 l.popup은 isOpen
메소드를 가지고 있습니다.
제휴하지 않습니다 StackOverflow