我正在使用Googlemaps API。 我尝试使用ajax调用更新标记的infowindow中的响应,但需要两次单击才能使用以下代码获取内容:
google.maps.event.addListener(marker, 'click', (function(marker, i)
{
//infowindow.setContent("Loading...");
return function() {
var abb = locations[i][3];
var line = locations[i][4];
var to1 = locations[i][5];
//console.log(abb);
getTimes(abb, line, to1, function(result) {
html1 = "";
html1 += result;
//alert(html1);
//console.log(html1);
});
//console.log(html1);
infowindow.setContent(locations[i][0] + "<br>" + html1);
infowindow.open(map, this);
}
}) (marker, i));
有没有人知道修复此问题?
感谢。
答案 0 :(得分:0)
getTimes函数是异步的,第一次点击只会请求响应,infowindow将不会有任何内容,因此不会打开。当您第二次单击时,内容将被缓存,并且将可用并且信息窗将打开。
在回调函数中打开infowindow。
google.maps.event.addListener(marker, 'click', (function(marker, i) {
return function() {
var abb = locations[i][3];
var line = locations[i][4];
var to1 = locations[i][5];
getTimes(abb, line, to1, function(result) {
html1 = "";
html1 += result;
infowindow.setContent(locations[i][0] + "<br>" + html1);
infowindow.open(map, this);
});
}
}) (marker, i));