谷歌地图:自动关闭打开信息窗口?

在我的网站上,我正在使用Google Maps API v3在地图上放置房屋标记。

信息窗口将保持打开状态,除非您明确单击关闭图标。这意味着,如果您将鼠标悬停在地图标记上,您可以一次打开2个以上的InfoWindows。

:如何使只有当前活动的信息窗口处于打开状态,而关闭所有其他信息窗口?这意味着,一次打开的信息窗口不超过1个?


答案 1

InfoWindows有一个close()函数。只需跟踪上次打开的窗口,并在创建新窗口时对其调用关闭函数。


答案 2

使用许多信息窗口的替代解决方案:在变量中保存上一个打开的信息窗口,然后在新窗口打开时将其关闭

var prev_infowindow =false; 
...
base.attachInfo = function(marker, i){
    var infowindow = new google.maps.InfoWindow({
        content: 'yourmarkerinfocontent'
    });

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

        prev_infowindow = infowindow;
        infowindow.open(base.map, marker);
    });
}