如何从传单地图外部的链接中打开弹出窗口

时间:2018-10-17 09:57:08

标签: jquery xml popup leaflet

我创建了一个传单地图,其中包含来自外部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,但是它们的名称却是唯一的。

0 个答案:

没有答案