我有一个传单地图,我想在打开后更改弹出窗口的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;
答案 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()
方法无法正常工作,因为它仅更新弹出窗口的外观(className
,offset
,minWidth
...),而不是{ {1}}'属性相对于弹出窗口的行为。
可以通过使用options
方法重新初始化弹出窗口的布局来更新小册子的弹出窗口的行为(例如closeOnClick
或autoClose
)。
例如在这种情况下:
_initLayout()