Google Maps API v3 infowindow закрыть событие / обратный вызов?
Мне нравится отслеживать любые и все информационные окна, которые открыты в моем интерфейсе Google Maps (я храню их имена в массиве), но я не могу понять, как удалить их из моего массива, когда они закрыты через "x" в верхнем правом углу каждого из них.
есть ли какой-то обратный вызов, который я могу слушать? Или, может быть, я могу сделать что-то вроде
addListener("close", infowindow1, etc ?
3 ответов:
есть событие для вызова infowindows
closeclickчто может помочь вамvar currentMark; var infoWindow = new google.maps.InfoWindow({ content: 'im an info windows' }); google.maps.event.addListener(marker, 'click', function () { infoWindow.open(map, this); currentMark = this; }); google.maps.event.addListener(infoWindow,'closeclick',function(){ currentMark.setMap(null); //removes the marker // then, remove the infowindows name from the array });
единственное последовательное решение, которое я нашел здесь, - это сохранить указатель на
infoWindowи проверить его.getMap()метод всякий раз, когда вам нужно проверить, был ли он закрыт.причина этого заключается в том, что щелчок другого элемента может привести к тому, что infoWindow будет отклонен по другим причинам... без
closeclickсобытий.var infoWindow = new google.maps.InfoWindow({ content: 'Something to put here.' }); infoWindow.open(map, infoWindow); setInterval(function () { console.log("infoWindow is bound to map: "+(infoWindow.getMap() ? true : false)); }, 1000);... Если вы буквально только заботитесь, если
infoWindowбыл закрыт с помощью кнопки "X", а затем мониторингcloseclick- это хорошо. Однако, есть и другие причины, по которым он может быть или был закрыт.
попробуйте это:
var closeBtn = $('.gm-style-iw').next(); closeBtn.click(function(){ //other things you want to do when close btn is click that.infowindow.close(); });Я перезаписываю эту функцию щелчка, потому что кнопка щелчка не будет работать в safari после изменения ее css/позиции.
Comments