我有传单弹出窗口绑定(bind)到标记。我的问题是,当您单击标记时,它自己的弹出窗口会关闭,我希望它们始终保持打开状态。
具体来说,我知道我可以使用 autoClose 选项来防止在单击另一个标记时关闭弹出窗口,我说的是在单击已绑定(bind)的标记时防止弹出窗口关闭。
我一直在阅读 Leaflet 文档,似乎没有弹出选项可以防止这种情况。
可能有某种插件可以为弹出窗口添加选项,但我没有找到任何..
也许我可以创建自己的弹出类,并阻止它关闭?但我真的不知道该怎么做。
谢谢。
最佳答案
您是否尝试过同时设置 closeOnClick
和 autoClose
至false
?您可以在此处运行代码段以检查这是否是您想要的吗?
var map = L.map('map').setView([38, -8], 7)
L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png').addTo(map);
for (let i=0; i<10; i++) {
const popup = L.popup({
closeOnClick: false,
autoClose: false
}).setContent("popup " + i);
L.marker([
getRandom(37, 39),
getRandom(-9.5, -6.5)
]).addTo(map).bindPopup(popup);
}
function getRandom(min, max) {
return Math.random() * (max - min) + min;
}
#map {height: 200px}
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/leaflet/1.7.1/leaflet.css" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/leaflet/1.7.1/leaflet.js"></script>
<div id="map"></div>
关于javascript - 如何防止传单弹出窗口关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52261113/