如何防止Leaflet弹出窗口关闭

时间:2018-09-10 15:29:20

标签: javascript leaflet

我将传单弹出窗口绑定到标记。我的问题是,当您单击标记时,它自己的弹出窗口关闭,我希望它们始终保持打开状态。

具体来说,我知道我可以使用autoClose选项来防止在单击另一个标记时关闭弹出窗口,我是在谈论防止在单击已绑定的标记时关闭弹出窗口。

我一直在阅读Leaflet文档,似乎没有弹出窗口选项可以阻止这种情况。

可能有某种插件可以在弹出窗口中添加选项,但我没有找到任何插件。

也许我可以创建自己的弹出类,并阻止其关闭?但是我真的不知道该怎么做。

谢谢。

1 个答案:

答案 0 :(得分:0)

您是否尝试将 closeOnClickautoClose 都设置为 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>