Google maps 信息窗口赢得';第一次单击时不会打开,而是在第二次单击事件时显示

Google maps 信息窗口赢得';第一次单击时不会打开,而是在第二次单击事件时显示,google-maps,google-maps-api-3,Google Maps,Google Maps Api 3,我正在使用下面的代码在我的地图上打开一个信息窗口 //populate the infowindow to defined marker map point function assignmarkerclick(marker1, index, message) { google.maps.event.addListener(marker1, 'click', function () { if (!infowindow) { infowi

我正在使用下面的代码在我的地图上打开一个信息窗口

 //populate the  infowindow to defined marker map point
 function assignmarkerclick(marker1, index, message) {
     google.maps.event.addListener(marker1, 'click', function () {
         if (!infowindow) {
             infowindow = new google.maps.InfoWindow();
         }
         infowindow.setContent(message);
         infowindow.open(map, marker1);
     });
 }
//显示指定标记的信息窗口

function showMarker(index) {

    new google.maps.event.trigger(marker[index], 'click');
}
因此,当我第一次单击“显示点”(假设我调用showMarker()javascript函数“show point link”click event)链接时,信息窗口不会打开,当我第二次单击“show point”链接时,信息窗口会打开, 以前有人有过这个错误吗?谁能帮我解决这个问题吗


谢谢

在函数之外将infowindow对象创建为全局变量:

// global var
var infowindow = new google.maps.InfoWindow();

 function assignmarkerclick(marker1, index, message) {
     google.maps.event.addListener(marker1, 'click', function () {
         infowindow.setContent(message);
         infowindow.open(map, marker1);
     });
 }

在函数之外,将infowindow对象创建为全局变量:

// global var
var infowindow = new google.maps.InfoWindow();

 function assignmarkerclick(marker1, index, message) {
     google.maps.event.addListener(marker1, 'click', function () {
         infowindow.setContent(message);
         infowindow.open(map, marker1);
     });
 }

但您尚未在函数外创建对象。当你使用新的google.maps.InfoWindow()时,这个对象还没有准备好立即使用。啊,这是我的错误伙伴,现在已经修复了,多亏了你在这里的建议。你的评论解决了我的问题,你是一个开始。希望是一个明星,而不是一个开始;-)但您尚未在函数外创建对象。当你使用新的google.maps.InfoWindow()时,这个对象还没有准备好立即使用。啊,这是我的错误伙伴,现在已经修复了,多亏了你在这里的建议。你的评论解决了我的问题,你是一个开始。希望是一个明星,而不是一个开始;-)