【问题标题】:info window won't open at first click, instead it will show on second click event信息窗口在第一次点击时不会打开,而是在第二次点击事件时显示
【发布时间】:2023-04-04 05:44:01
【问题描述】:

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

 //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 函数“显示点链接”单击事件)链接第一次信息窗口不会打开,当我单击“显示点”时链接第二次信息窗口将打开, 有没有人以前有过这个错误?有人可以帮我解决这个问题吗?

谢谢

【问题讨论】:

    标签: google-maps google-maps-api-3


    【解决方案1】:

    在函数外部将您的 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);
         });
     }
    

    【讨论】:

    • 但您还没有创建函数外的对象。当您执行 new google.maps.InfoWindow() 时,该对象尚未准备好立即使用。
    • 啊,这是我的错误伙伴,现在已修复,感谢您在这里的建议。你的 cmets 解决了我的问题,你是一个开始..
    • 希望是star,而不是start ;-)
    猜你喜欢
    • 1970-01-01
    • 2014-06-04
    • 1970-01-01
    • 2017-07-03
    • 1970-01-01
    • 2016-10-24
    • 2013-05-19
    • 1970-01-01
    • 2021-07-28
    相关资源
    最近更新 更多