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