Me estoy poniendo muy frustrado y espero que alguien aquí pueda ayudar. Tengo una aplicación de mapas donde hay varios marcadores en los mapas con información de Windows cuyo contenido se actualiza regularmente. Mi solución ha sido colocar los divs que entrarán en la ventana de información en el DOM en un contenedor oculto que puede ser actualizado por mi código de actualización en segundo plano. Luego utilizo una sola infoWindow y acaba de establecer el contenido al elemento DOM mediante consulta:Google Maps infowindow.setContent como un elemento DOM con jQuery parece que solo funciona una vez?
google.maps.event.addListener(marker, 'click', function(){
infoWindow.setContent($(#"+id+"-window-content)[0]);
infoWindow.open(map, marker);
}
La cosa funciona muy bien ... una vez. Entonces no se abrirá nuevamente para ese fabricante. Me he dado cuenta de que si abro la ventana en un marcador (Marcador A), y luego lo cierro, y luego lo abro en otro fabricante (Marcador B), y luego regreso al Marcador A, la ventana aparecerá junto al Marcador A , pero con el contenido de Marker B.
¿Por qué mi secuencia de comandos no establece el contenido en el elemento DOM una segunda vez ... Es casi como si el selector jQuery está eliminando el elemento del DOM.
Saludos,
whiteatom
Hola de nuevo,
resulta que pueden haber respondido a mi propia pregunta cuando estaba tratando de explicar aquí.
Pasar un elemento DOM a la función setContent() parece eliminarlo del DOM y ponerlo en la ventana de información, por lo que la próxima vez que intente capturarlo, ya no estará allí. Mi solución fue agregar un clon() a la llamada jQuery y parece funcionar ahora.
google.maps.event.addListener(marker, 'click', function(){
infoWindow.setContent($(#"+id+"-window-content).clone()[0]);
infoWindow.open(map, marker);
}
¿Alguien puede confirmar que esto es el comportamiento del setContent cuando se le pasa un elemento DOM? ¿Es esta la mejor manera de manejar esto?
Saludos,
whiteatom
sí :) esto es exactamente lo que estaba viendo. Estoy clonando ahora. ¡Gracias! – whiteatom
¡Me alegra que lo hayas solucionado! Happy mapping :) –