【发布时间】:2016-12-01 15:03:01
【问题描述】:
我正在创建一个带有多个标记的 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(); }
});
}
【问题讨论】:
-
您正在为每个标记创建新的信息窗口,并为每个信息窗口创建事件侦听器。大多数人通过设置一个信息窗口来解决这个问题,并在单击标记时设置它的位置和内容。这在性能方面也是最佳的。如果这不适合,理论上您可以在打开一个新信息窗口时关闭所有信息窗口,但您需要存储在一个数组中并循环遍历。