我正在创建带有多个标记的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(); }
        });

}

最佳答案

尝试以下操作:仅声明一个信息窗口(对于地图是全局的,而不是按标记的一个)。

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/

10-12 15:31