我创建了一个传单地图,其中包含来自外部xml文件的标记列表。
现在,我要尝试的是从侧边栏外部中的链接列表中打开每个标记弹出窗口。但是,如何连接每个链接以触发标记并打开其弹出窗口?
到目前为止,我的情况是jsFiddle。我已经删除了xml文件的真实路径,因为它包含敏感信息。我想端口无论如何都不重要。
在遍历xml之后,我调用此函数-工作正常。当我单击每个标记时,会看到带有正确html的弹出窗口:
function createMarkers(lat, long) {
// Create html for popups
if (lat && long) {
var popupHtml = [
'<h4>',
'' + tmp.name + '',
'</h4>',
'<p>' + tmp.address + '</p>',
'<p>' + tmp.zip + ' ' + tmp.district + '</p>'
].join("");
// Add all markers to the map
var marker = L.marker([lat, long]);
// Add html to popups
marker.bindPopup(popupHtml);
marker.addTo(map);
}
}
然后我这样做是为了在边栏中创建链接列表:
function listUnits() {
// Loop is left out but works.
unit = $('#units');
unit.append("<a class='unitLink' href='#' data-lat='" + tmp.lat + "' data-long='" + tmp.long + "'>" + tmp.name + "</a>");
}
所以现在我被这个功能困住了,我试图从对应于每个链接的地图上的标记中打开弹出窗口:
$('unitLink').on('click', function(e) {
// Here I want to create a function that opens
// the popup at the correct marker on the map when the above links are clicked
map.fire('click');
});
我应该注意,xml fie中的每个位置都没有唯一的ID,但是它们的名称却是唯一的。