javascript - style - Google Maps API v3 infowindow cerrar evento/devolución de llamada?
infowindow google maps (3)
La única solución consistente que he encontrado aquí es retener un puntero a la infoWindow
y verificar su método .getMap()
siempre que necesite validar si se ha cerrado.
La razón para esto es que al hacer clic en otro elemento puede provocar que se desestime la ventana de información por otros motivos ... sin que se closeclick
evento 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);
... Si literalmente solo te importa si la infoWindow
se cerró con el botón "X", entonces el monitoreo de closeclick
está bien. Sin embargo, hay otras razones por las cuales puede ser o ha sido cerrado.
Me gusta hacer un seguimiento de todas las ventanas emergentes que están abiertas en mi interfaz de Google Maps (guardo sus nombres en una matriz), pero no puedo encontrar la manera de eliminarlas de mi matriz cuando se cierran a través de la "x "en la esquina superior derecha de cada uno.
¿Hay algún tipo de devolución de llamada que pueda escuchar? O tal vez puedo hacer algo como addListener("close", infowindow1, etc
Prueba esto:
var closeBtn = $(''.gm-style-iw'').next();
closeBtn.click(function(){
//other things you want to do when close btn is click
that.infowindow.close();
});
Sobreescribo esta función de clic porque el botón de clic no funcionará en Safari después de cambiar la posición / css de la misma.
hay un evento para infowindows call closeclick
que puede ayudarte
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
});