【发布时间】:2015-12-29 05:13:48
【问题描述】:
我希望能够更改 Leafletjs 地图上弹出窗口的内容。我有数百个标记,每个标记都有自己的弹出窗口,它们从数组加载到 for 循环中。
var marker = L.marker(new L.LatLng(a[0], a[1]), { title: title });
marker.bindPopup('<img width="'+width+'" height="'+height+'" src="'+a[3]+'"/><br><div id="weather"> <button type="button" onclick="weatherload(\''+a[0]+'\',\''+a[1]+'\')">Click Me for Weather!</button></div>',{'maxWidth':'500','maxHeight':'350','minWidth':'350'});
CAMlayer.addLayer(marker);
这会弹出一个带有图片和按钮的弹出窗口。单击按钮时,我希望按钮消失,并被加载 gif 替换。虽然 AJAX 函数向服务器询问一些事情,但一旦从服务器获取数据,它应该再次更改内容。我可以使用 div 上的 id 完成所有这些操作,但这会破坏我想要调整的弹出窗口的大小。
myPopup._updateLayout()
可以用来强制它调整大小,但我如何告诉它哪个是 myPopup 工作?
我知道setContent 是更新弹出窗口的正确方法,但我又该如何告诉它哪个弹出窗口是我要处理的活动弹出窗口?
How to identify Marker during a popupopen event? 看起来很有希望,但我还没有弄清楚如何使用这种方式设置的 id 来更改弹出内容。
语法。
【问题讨论】:
标签: javascript popup leaflet