Имам div div в Google Maps и списък с отметки, които използвам за филтриране на маркери на картата.
Но ако щракнете върху маркер, отворете InfoWindow
и след това щракнете върху квадратче за отметка, за да премахнете маркерите от този тип, InfoWindow
не се премахва от картата.
След като премахна маркерите, наричам този код, но InfoWindow
остава:
try {
if( infowindow ) {
infowindow.close();
}
}
catch(err) { }
Отговори:
5 за отговор № 1Предлагам да промените кода, който създава Marker
щракнете върху слушател, който отваря вашия InfoWindow, като добавя код, подобен на следния пример:
google.maps.event.addListener( marker, "click", function() {
var bubble = new google.maps.InfoWindow({
content: buildBubbleContent( param1, param2 )
});
bubble.open( map, marker );
//pretty standard stuff to here, but the next line is new (for me):
google.maps.event.addListenerOnce( marker, "visible_changed", function() {
bubble.close();
});
});
Както беше обсъдено във въпрос: Как да почистя InfoWindow, когато свързаният маркер е скрит?:
4 за отговор № 2
function closeInfoWindow() {
if (infoWindow !== null) {
google.maps.event.clearInstanceListeners(infoWindow); // just in case handlers continue to stick around
infoWindow.close();
infoWindow = null;
}
}