好的,所以我有一个使用 leaflet 的大型映射项目,并且我有以下覆盖:
//set defaults for popups
L.Popup.options = {
autoClose: false,
closeButon: false
};
根据文档,这应该可以防止弹出窗口在我打开时关闭。为什么单击 map 时所有弹出窗口仍然关闭?
最佳答案
我不确定你是如何测试这个的,但如果你创建了一个 Popup 的单个实例,然后在你的 map 上添加了相同的实例,那么它只会改变它的位置,而不是在 map 上创建一个新的实例。您需要为 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这证明了这一点:
关于javascript - 传单 map : How to stop all the popups from closing when one is opened?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39380036/