Javascript Marker需要两次单击才能从ajax调用中获得正确的信息
我正在使用谷歌地图API。 我正在尝试使用ajax调用更新infowindow中标记的响应,但需要单击两下才能使用以下代码获取内容:Javascript Marker需要两次单击才能从ajax调用中获得正确的信息,javascript,jquery,ajax,google-maps,Javascript,Jquery,Ajax,Google Maps,我正在使用谷歌地图API。 我正在尝试使用ajax调用更新infowindow中标记的响应,但需要单击两下才能使用以下代码获取内容: google.maps.event.addListener(marker, 'click', (function(marker, i) { //infowindow.setContent("Loading..."); return function() {
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));
google.maps.event.addListener(标记,'click',(函数(标记,i)
{
//infowindow.setContent(“加载…”);
返回函数(){
var abb=位置[i][3];
var线=位置[i][4];
var to1=位置[i][5];
//控制台日志(abb);
getTimes(abb,line,to1,函数(result){
html1=“”;
html1+=结果;
//警报(html1);
//console.log(html1);
});
//console.log(html1);
infowindow.setContent(位置[i][0]+“
”+html1);
打开(地图,这个);
}
})(marker,i));
有人知道这个问题的解决方法吗
谢谢 getTimes函数是异步的,第一次单击只会请求响应,信息窗口不会有任何内容,因此不会打开。当您第二次单击时,内容将被缓存,并可用,信息窗口将打开 在回调函数中打开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));
google.maps.event.addListener(标记,'click',(函数(标记,i){
返回函数(){
var abb=位置[i][3];
var线=位置[i][4];
var to1=位置[i][5];
getTimes(abb,line,to1,函数(result){
html1=“”;
html1+=结果;
infowindow.setContent(位置[i][0]+“
”+html1);
打开(地图,这个);
});
}
})(marker,i));
请提供一个演示此问题的示例。非常感谢。这很有效。