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?
答案 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));