我想创建一个标记以及一个弹出窗口,其中包含一个按钮,当单击该按钮时,将触发JQuery-Ajax-Function以编辑弹出窗口的内容。
使用按钮的onclick() - 属性,我似乎无法找到将弹出框架坐标传递给Ajax函数的方法。我想传递坐标,因为据我所知,这是清楚识别每个弹出/标记的唯一方法。
到目前为止,这是我的代码:
function onMapClick(eventData) {
var popup = L.popup()
.setLatLng(eventData.latlng)
.setContent("<input type=\"button\" onclick=\"editMarker(" + eventData.latlng + ")\" value=\"Click to edit!\">")
L.marker(eventData.latlng, { draggable : true })
.bindPopup(popup)
.on("click", openMarker)
.on("contextmenu", deleteMarker)
.on("dblclick", editMarker)
.addTo(map);
}
function editMarker(eventData) {
alert("Editing marker at " + eventData);
}
然而,这样onclick()的参数是&#34; LatLng(xx,-yy)&#34;这当然会导致未定义的函数调用。我发现没有办法获得弹出窗口的纯坐标,以便将它们传递给编辑函数。
a)清楚地识别弹出窗口和b)将该ID传递给另一个函数的最佳方法是什么?
答案 0 :(得分:0)
所有传单对象都与_leaflet_id
相关联,因此您应该可以将其用作您的ID。
您还可以绑定弹出窗口时触发的open
事件。该事件传递对正在打开的弹出窗口的引用。您可以绑定并使用如下:
popup.on("open", popupOpen);
// some other code as needed
function popupOpen(pop) {
this.currentPop = pop;
console.log(pop.target._leaflet_id);
}