0
我的代碼如下,我有一個幾乎相同的代碼的問題,它在這裏修復了StackOverflow,但它再次,它不工作。我沒有改變工作代碼,但我確實把它包裝在你會在下面看到的for...in
循環中。問題是無論我點擊哪個標記,它總是觸發放置的最後一個標記/信息窗口。用谷歌地圖打破JS循環
$(function(){
var latlng = new google.maps.LatLng(45.522015,-122.683811);
var settings = {
zoom: 10,
center: latlng,
disableDefaultUI:true,
mapTypeId: google.maps.MapTypeId.SATELLITE
};
var map = new google.maps.Map(document.getElementById("map_canvas"), settings);
$.getJSON('api',function(json){
for (var property in json) {
if (json.hasOwnProperty(property)) {
var json_data = json[property];
var the_marker = new google.maps.Marker({
title:json_data.item.headline,
map:map,
clickable:true,
position:new google.maps.LatLng(
parseFloat(json_data.item.geoarray[0].latitude),
parseFloat(json_data.item.geoarray[0].longitude)
)
});
var infowindow = new google.maps.InfoWindow({
content: '<div><h1>'+json_data.item.headline+'</h1><p>'+json_data.item.full_content+'</p></div>'
});
new google.maps.event.addListener(the_marker, 'click', function() {
infowindow.open(map,the_marker);
});
}
}
});
});
謝謝無論誰知道這一點!
甜!作品,嗯,我有另一個問題,但我認爲我可以從這個數據中找出...相同的內容(請參閱infowindow var)在每一箇中都會出現。所以,即時通訊嘗試創建一個函數來捕獲它的價值。再次感謝! – 2010-05-13 19:36:07
不錯,實際上,將var infowindow添加到buildHandler函數中,就像一個魅力,非常感謝! – 2010-05-13 19:54:57
@Oscar:Doh!我錯過了每個循環中的變化。但是,嘿,稱它爲「作爲讀者的練習」部分。 ;-) – 2010-05-13 21:17:02