【问题标题】:Leaflet maps: How to stop all the popups from closing when one is opened?传单地图:如何阻止所有弹出窗口在打开时关闭?
【发布时间】:2016-09-07 22:38:10
【问题描述】:

好的,所以我有一个使用传单的大型地图项目,并且我有以下覆盖:

//set defaults for popups
L.Popup.options = {
    autoClose: false,
    closeButon: false
     };

根据文档,这应该可以防止弹出窗口在我打开一个时关闭。为什么我点击地图时所有的弹窗仍然关闭?

【问题讨论】:

  • 其实关闭所有弹窗的代码在哪里调用?

标签: javascript jquery leaflet gis


【解决方案1】:

我不确定你是如何测试的,但是如果你创建了一个 Popup 的单个实例,然后在地图上添加了同一个实例,那么它只会改变它的位置,而不是在地图上创建一个新实例。您需要为 3 个不同的标记创建 3 个不同的弹出窗口,以保持它们处于打开状态。

这是执行您想要的代码的示例(传单版本 1.0.0-rc3):

var map = new L.Map('map').setView([51.505, -0.09], 13);

var newpopup = L.popup({
  closeOnClick: false,
  autoClose: false
}).setContent("popup 1");
var newpopup2 = L.popup({
  closeOnClick: false,
  autoClose: false
}).setContent("popup2");
var newpopup3 = L.popup({
  closeOnClick: false,
  autoClose: false
}).setContent("popup3");

L.tileLayer('http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
  maxZoom: 18
}).addTo(map);

L.marker([51.49, -0.09]).addTo(map).bindPopup(newpopup);

L.marker([51.51, -0.091]).addTo(map).bindPopup(newpopup2);

L.marker([51.51, -0.12]).addTo(map).bindPopup(newpopup3);

还有一个 jsFiddle 证明了这一点:

【讨论】:

  • 然后点击一个..当它重新打开时它们都关闭了。
  • 我不明白,这不是你想要的答案吗?使用此解决方案,只有在再次单击 X 或标记时才能关闭弹出窗口。当您单击并打开其他的时,它们都将保持打开状态。
  • 也许 OP 的意思是这样的:stackoverflow.com/q/66637350/1243247
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多