varios style puntos marcar marcadores google example ejemplos agregar javascript jquery google-maps google-maps-api-3

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 });