点击地图关闭谷歌地图中的信息窗口?

tem*_*ame 29 google-maps-api-3

我正在制作一个移动网络应用.

该应用程序的一部分删除了几个标记,可以单击它们打开信息窗口.令人恼火的是,如果你继续使用地图而不承认它们,这些不会消失,就像iOS地图应用程序一样.

有没有办法设置它,以便如果用户点击底层地图,所有打开的信息窗口都关闭?

Mar*_*mel 50

试试这个:

google.maps.event.addListener(map, "click", function(event) {
    infowindow.close();
});
Run Code Online (Sandbox Code Playgroud)

它应该很简单.

  • 这应该是公认的答案!奇迹般有效! (7认同)
  • 值得一提的是,这段代码需要位于标记事件侦听器函数 `google.maps.event.addListener(marker, 'click', function() {` 中,因为我花了一些时间试图让它工作,但不知道它应该在那里。谢谢。 (2认同)

sla*_*win 36

将侦听器添加到map的click事件并在其处理程序中关闭信息框

google.maps.event.addListener(map, "click", function(event) {
    for (var i = 0; i < ibArray.length; i++ ) {  //I assume you have your infoboxes in some array
         ibArray[i].close();
    }
});
Run Code Online (Sandbox Code Playgroud)

我在典型的网站上这样做,但是没有看到它在移动设备上不起作用的任何原因

  • 另外map.addListener("click",function(event){...有效 (2认同)

小智 7

google.maps.event.addListener(marker, 'click', function() {
    if(!marker.open){
        infoWindow.open(map,marker);
        marker.open = true;
    }
    else{
        infoWindow.close();
        marker.open = false;
    }
    google.maps.event.addListener(map, 'click', function() {
        infoWindow.close();
        marker.open = false;
    });
});
Run Code Online (Sandbox Code Playgroud)

完美的工作