宣传单弹出式更新closeOnClick

时间:2014-01-27 20:47:43

标签: javascript leaflet

我有一个传单地图,我想在打开后更改弹出窗口的closeOnClick属性。我已经尝试过这段代码,但它不起作用。

// at build
var mapPopupOptions = {maxWidth:600,minWidth:300};
var popup = new L.popup(mapPopupOptions).setContent("hello world");

// elsewhere after popup is open
popup.options.closeOnClick = false;

供参考:http://leafletjs.com/reference.html#popup

2 个答案:

答案 0 :(得分:0)

不是从popup var引用您的初始Popup,而是从Marker本身获取实际的Popup引用。

 // elsewhere after the popup is open
 var marker = // This is the marker are attempting to modify popup behavior
 var popup = marker.getPopup();
 // Modify the popup now
 popup.setContent("This popup has changed!", { closeOnClick: false });

您引用的popup对象可能不是您正在修改的标记正在使用的实际弹出对象。

答案 1 :(得分:0)

我知道这个问题很老,但我刚刚找到了解决方案。 无论是使用popup从标记中获取getPopup()对象,还是直接从先前的声明中获取。

由于某些原因,update()方法无法正常工作,因为它仅更新弹出窗口的外观(classNameoffsetminWidth ...),而不是{ {1}}'属性相对于弹出窗口的行为。

可以通过使用options方法重新初始化弹出窗口的布局来更新小册子的弹出窗口的行为(例如closeOnClickautoClose)。

例如在这种情况下:

_initLayout()