use*_*656 5 javascript google-maps
我有以下代码来打开一个infowindow当一个特定的标记点击它打开一个窗口.当点击另一个时,有谁知道如何关闭以前的信息窗口?
google.maps.event.addListener(marker, 'click', function() {
infowindow.open(map1, marker);
});
Run Code Online (Sandbox Code Playgroud)
Nel*_*son 12
只需确保您只infoWindow在全局范围内创建一个,如下所示:
infoWindow = new google.maps.InfoWindow; //static infoWindow for all your markers
google.maps.event.addDomListener(window, 'load', function() {
//create your markers here
google.maps.event.addListener(marker, 'click', function() {
infoWindow.open(map1, marker); //take care with case-sensitiveness
});
});
Run Code Online (Sandbox Code Playgroud)
更新:
在您的JS文件中创建一个全局变量,将其命名为lastOpenedInfoWindow或您想要的任何名称,然后在打开新信息窗口之前将其关闭,然后将“ lastOpenedInfoWindow”分配给当前打开的窗口,依此类推
google.maps.event.addListener(marker, 'click', (function(marker, content, infowindow) {
return function() {
closeLastOpenedInfoWindow();
infowindow.setContent(content);
infowindow.open(map, marker);
lastOpenedInfoWindow = infowindow;
};
})(marker, makrerdata[i], infowindow));
}
function closeLastOpenedInfoWindow() {
if (lastOpenedInfoWindow) {
lastOpenedInfoWindow.close();
}
}
Run Code Online (Sandbox Code Playgroud)