Google Maps Infofenster.setContent als ein DOM-element mit jQuery scheint, funktioniert nur einmal?

Ich bin immer sehr frustriert und ich hoffe, dass hier jemand helfen kann. Ich habe eine Karten-app, wo gibt es mehrere Marker auf den Karten, die mit infoWindows, deren Inhalte regelmäßig aktualisiert. Meine Lösung war die Stelle, die divs, die in dem Infofenster in dem DOM, in einer versteckten Containers, der aktualisiert werden kann mein updater-code im hintergrund. Dann verwende ich eine einzige Infofenster und einfach die Inhalte auf das DOM-element mit dem Abfrage:

google.maps.event.addListener(marker, 'click', function(){
     infoWindow.setContent($(#"+id+"-window-content)[0]);
     infoWindow.open(map, marker);
}

Das Ding Super funktioniert... einmal. Dann wird es nicht wieder öffnen für das, maker. Ich habe bemerkt, dass wenn ich das Fenster öffnen auf einen marker (Marker A), und dann schließen Sie es und öffnen Sie es dann auf einem anderen maker (Marker B), und dann gehen Sie zurück zu der Markierung Ein, das Fenster erscheint neben der Markierung Ein, aber mit Marker B content.

Nicht warum mein script den Inhalt des DOM-Elements ein zweites mal... Es ist fast wie mit dem jQuery-Selektor ist, löschen Sie das element aus dem DOM.

Cheers,

whiteatom


Hallo nochmal,

Stellt sich heraus, ich kann meine Frage selbst beantwortet, als ich versuchte um Sie hier zu erklären.

Übergabe eines DOM-Elements auf die setContent () - Funktion scheint tatsächlich entfernen Sie Sie aus dem DOM und stellen Sie es in das Infofenster, sodass ich das nächste mal versuchen, und nehmen Sie es, es ist nicht mehr da. Mein fix war, fügen Sie einen clone() in der jQuery-Aufruf und es scheint zu funktionieren jetzt.

google.maps.event.addListener(marker, 'click', function(){
     infoWindow.setContent($(#"+id+"-window-content).clone()[0]);
     infoWindow.open(map, marker);
}

Kann das jemand bestätigen, ist das Verhalten der setContent, wenn ein DOM-element übergeben wird? ist dies der beste Weg, dies zu behandeln?

Cheers,

whiteatom

InformationsquelleAutor whiteatom | 2012-03-14
Schreibe einen Kommentar