2013-07-13 70 views
3

我有一個傳單地圖上有幾個標記。如何從地圖之外的鏈接打開傳單標記彈出窗口?

每個標記有類似HTML來

<img class="leaflet-marker-icon leaflet-clickable leaflet-zoom-animated" src="leaflet/dist/images/marker-icon.png" style="margin-left: -12px; margin-top: -41px; width: 25px; height: 41px; transform: translate(435px, 200px); z-index: 200;" title="location_1"> 

當點擊該標記彈出打開標記上方。

即時消息試圖做的是添加地圖以外的鏈接,與每個標記有關。

每個標記都有唯一的標題。所以,我能不能創建HTML鏈接的列表,與標題爲

<a class="location_1">location 1</a> 
<a class="location_2">location 2</a> 

這樣的標識符然後綁定這些鏈接到相應的標記在地圖小冊子?

我該如何做到最好?

回答

11

如果您將標記添加到數組,那麼根據元素的屬性檢查它們將非常簡單。

例如:

var markers = []; 
var marker1 = L.marker([51.497, -0.09],{title:"marker_1"}).addTo(map).bindPopup("Marker 1"); 
markers.push(marker1); 
var marker2 = L.marker([51.495, -0.083],{title:"marker_2"}).addTo(map).bindPopup("Marker 2"); 
markers.push(marker2); 
var marker3 = L.marker([51.49, -0.097],{title:"marker_3"}).addTo(map).bindPopup("Marker 3"); 
markers.push(marker3); 

function markerFunction(id){ 
    for (var i in markers){ 
     var markerID = markers[i].options.title; 
     if (markerID == id){ 
      markers[i].openPopup(); 
     }; 
    } 
} 

$("a").click(function(){ 
    markerFunction($(this)[0].id); 
}); 

看本fiddle

+0

如果有什麼聯繫是在另一個頁面不同的形式,其中地圖是工作?有任何想法嗎?我正在考慮使用網址或其他內容。 –

+1

不確定我是否按照這個想法 - 你想要一個外部鏈接來打開應用程序,並且啓動一個特定的彈出窗口? – abenrob

相關問題