javascript - 一次只打开一个信息窗口

标签 javascript google-maps

我正在创建一个带有多个标记的 Google map 。目前每个标记都有一个信息窗口,我怎样才能一次只打开一个信息窗口?

目前它会在点击 map 时关闭所有窗口。

我知道这个问题已被问过几次,但代码似乎与我的大不相同。

// if marker contains HTML, add it to an infoWindow
if( $marker.html() )
{
    // create info window
    var infowindow = new google.maps.InfoWindow({
        content     : $marker.html()
    });

    // show info window when marker is clicked
    google.maps.event.addListener(marker, 'click', function() {
        infowindow.open( map, marker );
    });

    google.maps.event.addListener(map, 'click', function(event) {
        if (infowindow) {
            infowindow.close(); }
        }); 

}

最佳答案

试试这个:只声明一个信息窗口( map 全局的,而不是标记的)。

var infoWindow;
...
if( $marker.html() ){
    google.maps.event.addListener(marker, 'click', function() {
      if (infoWindow) infoWindow.close(); 
      infoWindow = new google.maps.InfoWindow({
         content     : $marker.html()
       });
       infoWindow.open( map, marker );
    });
}

关于javascript - 一次只打开一个信息窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40913906/

相关文章:

javascript - 在 AngularJS 中选择下拉项时显示概述文本

javascript - 谷歌浏览器扩展程序 : How to use an external script

javascript - !() 在 JavaScript 中是什么意思

javascript - 为什么我的函数没有在谷歌地图的点击事件中被调用?

java.lang.RuntimeException : Waited too long for browser bridge with googlemaps

java - latlng 不能为空 - 自动完成中需要一个位置

javascript - 使用javascript将谷歌地图缩放到各个方向的x线性英里

javascript - 需要帮助添加/修改我的脚本以包括使用 jquery 和 css 的一些旋转

javascript - 如何在谷歌地图 javascript v3 中居中多边形?

javascript - 在 AngularJS 选项卡 View 中设置默认单选/输入/复选框值