我正在使用Google地圖的API。我有一系列標記和一系列信息窗口,我試圖在單擊標記時顯示各自的信息窗口。我無法理解應該如何添加我的事件偵聽器,以便它尊重JavaScript閉包。我應該如何重構我的addEventListener?
(錯誤)代碼,所有這些都包含在一個initialize()在頁面加載時被調用:
var markers = []
var infoWindows = []
[define all markers and info windows here, long so cut]
for (var i = 0; i < markers.length; i++)
{
google.maps.event.addListener(markers[i], 'click', function() {
infoWindows[i].open(mymap, markers[i]);
});
}
我確信,我所有的對象都正確來這裏之前初始化。
我對我的問題的理解是,當點擊事件發生時,infoWindows [i]不再可用。我能做些什麼,以便eventListener按我的想法工作,數組中第i個位置的infoWindow對應於第i個位置的標記?
謝謝。
[Google Maps API多個標記與Infowindows]的可能重複(http://stackoverflow.com/questions/11106671/google-maps-api-multiple-markers-with-infowindows) – geocodezip 2013-03-20 20:04:53