单击标记时如何只显示一个信息窗口?

时间:2015-08-01 03:12:45

标签: javascript google-maps google-maps-api-3

var i;
var marker = [];
var infowindow = [];

for(i=0; i<results.length ; i++ ){
marker[i] = new google.maps.Marker({
  position: results[i].geometry.location,
  map: map
});

infowindow[i] = new google.maps.InfoWindow({
  content: "test" + i
});

google.maps.event.addListener(marker[i], 'click', function(num) {
  return function() {
      infowindow[num].open(map, marker[num]);
  }
}(i)); 

}

当我点击每个标记(test1,test2,test3 ....)时,我写了一些代码以获得不同的信息窗口内容,即使我点击另一个标记,信息窗口仍会保留在屏幕上。

如何在点击每个标记时只显示一个infowindow?

1 个答案:

答案 0 :(得分:1)

只需记住当前打开的窗口,并在需要打开另一个窗口时将其关闭,类似于:

var curInfoWindow;
google.maps.event.addListener(marker[i], 'click', function(num) {
  return function() {
    if (curInfoWindow != null) {
        curInfoWindow.close();
    }
    curInfoWindow = infowindow[num];

    infowindow[num].open(map, marker[num]);
  }
}(i));