2016-12-05 48 views
0

我有一個像潘使用標記`For`循環

var marker1 = L.marker(...); 
var marker2 = L.marker(...); 
... 

新增夫婦在陣列中的標記(傳單)的陣列

var markerArray = []; 
markerArray.push(marker1); 
markerArray.push(marker2); 
... 

現在我需要使用For循環創建一個功能,以平移到我點擊的標記上。我試過這段代碼,但它不起作用。

for (var i = 0; i < markerArray.length; i++) { 
    markerArray[i].on("click", function() { 
     mymap.panTo(markerArray[i].getLatLng());  
    }) 
}; 

任何幫助?

+2

嘗試用替換功能:功能(E){mymap.panTo(e.latlng; } – aggaton

回答

1

您所做的是將事件處理程序附加到標記(請參閱doc)。

在您的事件處理程序中,標記是事件的目標(e.target)。

for (var i = 0; i < markerArray.length; i++) { 
    markerArray[i].on("click", function(e) { 
     mymap.panTo(e.target.getLatLng());  
    }) 
}; 

你可以寫另一種方式來實現我變量在事件處理程序沒有任何意義:

for (var i = 0; i < markerArray.length; i++) { 
    markerArray[i].on("click", markerClicked);    
}; 

function markerClicked(e) { 
    mymap.panTo(e.target.getLatLng()); 
}