Javascript 同时打开几个弹出窗口
在jquery$.getJSON调用中,我创建了几个标记和弹出窗口,然后将弹出窗口绑定到标记:Javascript 同时打开几个弹出窗口,javascript,leaflet,Javascript,Leaflet,在jquery$.getJSON调用中,我创建了几个标记和弹出窗口,然后将弹出窗口绑定到标记: $.each(points, function(index, p) { var marker = L.marker(L.latLng(p.lat, p.lon), { title: p.text }); var popup = L.popup().setContent(p.text); marker.bindPopup(popup); } 我想在地图加载后打开标记上的所有弹出窗口(
$.each(points, function(index, p) {
var marker = L.marker(L.latLng(p.lat, p.lon), { title: p.text });
var popup = L.popup().setContent(p.text);
marker.bindPopup(popup);
}
我想在地图加载后打开标记上的所有弹出窗口(如果可能,请保持打开状态)。传单1.0文档说明:“使用Map.openPopup…或使用Map.addLayer打开任意多个。”
如果可能的话,我更喜欢使用“内置”解决方案,而不是我必须四处摆弄的解决方案(如中)。一个优点是这种方法可以通用,例如打开所有工具提示。这可能会帮助我更好地理解图层
我尝试了几种方法,包括图层组和功能组,但都没有效果。如何一次打开一组弹出窗口?您可以使用包含所有弹出窗口的图层组。这样,您就拥有了弹出窗口的所有组控制功能 我在JSfidle()上复制了一个基本示例,但是您可以想象只从layerGroup中删除某些弹出窗口,而不是一次删除所有弹出窗口。以下是代码的关键部分:
var popup_layer = new L.layerGroup();
$.each(testData, function(index, p) {
var marker = L.marker(L.latLng(p.lat, p.lon));
marker.addTo(map);
popup = new L.popup({offset: new L.Point(0, -30)});
popup.setLatLng(L.latLng(p.lat, p.lon));
popup.setContent(p.text);
popup.openPopup();
popup_layer.addLayer(popup);
});
popup_layer.addTo(map);