该代码应该添加一个click事件,其中infowindow在一个标记上打开,其中包含来自PHP页面的数据,并且"工作"除了第一个infowindow打开空白(只是在h1中说新闻)之后,我打开的每个其他信息都包含来自最后一个标记的东西。谁能告诉我如何解决它?
//broken part
marker.addListener('click', function() {
$.getJSON('articles.php/GET?geo='+ marker.title)
.done(function(data, textStatus, jqXHR) {
$.each(data, function() {
contentString=contentString + '<li><a href=' + data[counter].link + '>' +data[counter].title + '</a></li>' ;
counter++;
});
});
contentString=contentString + '</ul></div>' ;
var infowindow= new google.maps.InfoWindow({
content: contentString
});
infowindow.open(map, marker);
counter=0 ;
contentString='<div align="center"><h1>news</h1><br></div><div align="left" colour="blue"><ul>';
});
答案 0 :(得分:0)
$ .getJSON是异步的,你需要使用其回调函数内的数据,当它/何时可用(在.done
函数内)。
marker.addListener('click', function() {
$.getJSON('articles.php/GET?geo='+ marker.title)
.done(function(data, textStatus, jqXHR) {
$.each(data, function() {
contentString=contentString + '<li><a href=' + data[counter].link + '>' +data[counter].title + '</a></li>' ;
counter++;
});
contentString=contentString + '</ul></div>' ;
var infowindow= new google.maps.InfoWindow({
content: contentString
});
infowindow.open(map, marker);
counter=0 ;
contentString='<div align="center"><h1>news</h1><br></div><div align="left" colour="blue"><ul>';
});
});