popup - 如何使用 Leaflet 关闭多个弹出窗口?
问题描述
我从这里暴露的黑客中找到了我正在寻找的行为(可能有多个弹出窗口并在用户点击地图时关闭它们)http://bl.ocks.org/mpmckenna8/9395643
不幸的是,这个 hack 不适用于最新的 1.6.0 版本。也许有多种选项可以提供这种行为,但我还没有找到。
我准备了一个 jsfiddle 来探索这个:https ://jsfiddle.net/PBrockmann/3j40ychf/
var popup1 = L.popup({
minWidth: 100,
closeOnClick: false,
autoClose: false
}).setContent("marker1");
L.circleMarker([51.5072, 0.1275]).addTo(map).bindPopup(popup1);
也来自https://observablehq.com/@pbrockmann/untitled/2
欢迎对此提供任何帮助。
解决方案
此代码将关闭所有 L.CircleMarkers 上的弹出窗口 - 是否足够接近?
map.on('click', function(e) {
map.eachLayer(function(layer) {
if (layer instanceof L.CircleMarker) {
layer.closePopup()
}
})
});
推荐阅读
- java - Arraylist 将方法添加到每个项目的最后一个值中
- gradle - Jacoco Gradle 在整个项目级别(不是在模块级别)的最小代码覆盖率阈值
- ios - 如何在不使用 reverse() 函数的情况下反转字符串,希望反转是逐字而不是从最后一个索引到 swift 中的第一个索引
- javascript - 如何在我的 javascript 函数中使用来自 html 表单的输入?
- image - UWP 我的子弹在哪里与画布上的图像相交(相对于图像的坐标)
- javascript - JavaScript 中的模糊搜索,结果按相关性排序
- ruby-on-rails - 可以将任何控制器方法移出类外到模块吗?
- c# - 在 FROM 子句中带有参数的存储过程中使用 LIKE 和 %
- java - 跨域会话共享 Spring Boot
- java - 如何使用 MockitoJUnitRunner 模拟 unmodifiableMap