0
我正在從Web服務檢索結果。結果以JSON形式返回。 JSON看起來像這樣:在Google地圖中使用JSON - 閉包?
{
"001": {
name: 'Grocery Store',
latitude:30.2669456,
longitude:-97.7427782,
calendar: {
month: 'November'
}
},
"002": {
name: 'Ice Cream',
latitude:30.2669425,
longitude:-97.7427742,
calendar: {
month: 'November'
}
}
}
檢索完此數據後,我試圖將其添加到Google地圖。我已成功初始化我的地圖。實際上,推針出現在正確的位置。當我將鼠標懸停在每個圖釘上時,標題顯示正確。但是,當我單擊推針並顯示信息窗口時,它會出現在每個推針的相同位置。另外,信息窗口的內容是相同的。我注意到它始終是與json
中最後一個鍵相關的值。出於這個原因,我懷疑它與封閉有關。同時,我不知道如何解決這個問題。
我在做什麼錯?這裏是我的代碼循環的結果:
function dataRetrieved(json) {
for (var place in json) {
var marker = new google.maps.Marker({
map: map,
title: json[place].name,
position: {
lat: json[place].latitude,
lng: json[place].longitude
}
});
marker.info = new google.maps.InfoWindow({
content: '<div>' + json[place].calendar.month + '</div>'
});
google.maps.event.addListener(marker, 'click', function() {
marker.info.open(map, marker);
});
}
}
謝謝你的幫助!
是的,這就是:http://stackoverflow.com/questions/750486/javascript-closure-inside-loops-simple-practical-example?rq=1 – Jamiec