Leaflet maps:如何在打开一个弹出窗口时阻止所有弹出窗口关闭?

cat*_*ger 1 javascript gis jquery leaflet

好吧,所以我有一个使用传单的巨大的映射项目,我有以下覆盖:

//set defaults for popups
L.Popup.options = {
    autoClose: false,
    closeButon: false
     };
Run Code Online (Sandbox Code Playgroud)

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

Mar*_*tic 6

我不确定你是如何测试的,但如果你创建了一个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);
Run Code Online (Sandbox Code Playgroud)

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

在此输入图像描述