我有以下代碼,當單擊某個特定標記並打開一個窗口時,將打開一個infowindow。有人知道如何關閉以前的infowindow時,另一個被點擊?單擊另一個標記時關閉infowindow
google.maps.event.addListener(marker, 'click', function() {
infowindow.open(map1, marker);
});
我有以下代碼,當單擊某個特定標記並打開一個窗口時,將打開一個infowindow。有人知道如何關閉以前的infowindow時,另一個被點擊?單擊另一個標記時關閉infowindow
google.maps.event.addListener(marker, 'click', function() {
infowindow.open(map1, marker);
});
只要確保你只能創建在全球範圍內ONE 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
});
});
UPDATE:
應該是infoWindow.open作爲Javascript區分大小寫 – duncan
它不工作。同樣每次點擊一個窗口 – user1292656
所有的標記在頁面加載這就是爲什麼創建它不工作:) – user1292656
infowindow.close()
將關閉一個開放的infowindow。這取決於你如何創建你的infowindows - 你只有一個infowindow變量來處理所有的,或者你是否爲每個標記創建了多個infowindow對象?如果沒有在這個階段看到更多的代碼,很難更具體。
是的,我使用相同的變量來處理所有:) – user1292656
爲了關閉以前的infowindow,當單擊另一個infowindow時,需要確保以下代碼在函數initialize()循環中。
infoWindow = new google.maps.InfoWindow;
在你的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();
}
}
確保你已經有一個InfoWindow實例 - 新的google.maps.InfoWindow。因此,每次打開標記時,只有一個實例在initialize方法或全局聲明的InfoWindow中聲明。
var infoWindow = new google.maps.InfoWindow
確保此infoWindow僅實例化一次。否則,每次單擊標記時都會打開多個窗口。
marker.addListener('click', function() {
infoWindow.setContent(infowincontent);
infoWindow.open(clntLocMap, marker);
});
您能向我們展示更多的代碼嗎? infowindow是在哪裏創建的? – duncan
可能的重複http://stackoverflow.com/questions/5110956/close-other-infowindows-nicely?rq=1或http://stackoverflow.com/questions/12567280/google-api-v3-multiple-infowindows-加上關閉點擊/ 12567780 – geocodezip