一次只打开一个infowindow

时间:2016-12-01 15:03:02

标签: javascript google-maps

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

此时它会在点击地图时关闭所有窗口。

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

// 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(); }
        }); 

}

1 个答案:

答案 0 :(得分:2)

试试这个:声明一个infowindow(地图的全局,而不是标记的一个)。

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 );
    });
}