Fab*_*oni 1 javascript android leaflet
根据主题,如何检查标记是否打开弹出窗口?
例如.
var m = new L.marker([2,1]).addTo(map).bindPopup('test');
Run Code Online (Sandbox Code Playgroud)
点击标记显然会打开弹出窗口.
有没有任何功能,如:
if(m.popupOpen() == true) {
// do somehting
}
Run Code Online (Sandbox Code Playgroud)
我尝试过以下方法:
m.on('click', function(e) {
if(m._map.hasLayer(m._popup)) {
// Do something
}
}
Run Code Online (Sandbox Code Playgroud)
但它非常脆弱.在Chrome上,它将在Android浏览器上运行,如果在第二次点击时触发,那么它就不是真的可靠了.
这样做有什么标准方法吗?
谢谢
iH8*_*iH8 10
您可以对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
Run Code Online (Sandbox Code Playgroud)
编辑:v1.0.0 L.Popup有一个isOpen方法:
http://leafletjs.com/reference-1.0.0.html#popup-isopen
| 归档时间: |
|
| 查看次数: |
7067 次 |
| 最近记录: |