当使用传单地图将标记排列在阵列中时,如何在标记单击上打开弹出窗口

Bac*_*ice 0 javascript leaflet mapbox

大家好,我有一组标记是在.each循环上动态创建的,就像这样。

$.each(data, function(index, element) {
    markerArr[element.id] = L.marker(map.unproject([element.LocationX,element.LocationY],map.getMaxZoom()-4)).addTo(map);
});
Run Code Online (Sandbox Code Playgroud)

我的问题是如何在单击时为每个弹出窗口打开弹出窗口,并在弹出窗口中显示唯一ID?

如果要像这样用唯一的名称声明每个标记,则可以执行此操作。

var marker1 = L.marker([158,395]).addTo(mapl);
var marker2 = L.marker([158,410]).addTo(mapl);
marker1.bindPopup("Kanye West");
marker1.on('click', function (e) {
    this.openPopup();
});
marker2.bindPopup("50 Cent");
marker2.on('click', function (e) {
    this.openPopup();
});
Run Code Online (Sandbox Code Playgroud)

但是我需要能够打开数组中的所有标记。

尝试这样的事情没有运气

markerArr[this].on('click', function (e) {
    this.openPopup();
});
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激。

谢谢。

Ale*_*ega 5

您不需要自己编写click事件处理程序。如果您致电marker.bindPopup("hello"),则弹出窗口将在点击时自动打开。