Я очень расстроен и надеюсь, что кто-то здесь может помочь. У меня есть приложение для карт, где на картах есть несколько маркеров с информационными окнами, содержание которых регулярно обновляется. Мое решение состояло в том, чтобы поместить элементы div, которые войдут в информационное окно в DOM, в скрытый контейнер, который может обновляться моим кодом обновления в фоновом режиме. Затем я использую одно информационное окно и просто устанавливаю содержимое для элемента DOM, используя запрос:
google.maps.event.addListener(marker, 'click', function(){
infoWindow.setContent($(#"+id+"-window-content)[0]);
infoWindow.open(map, marker);
}
Это прекрасно работает ... один раз. Тогда он не откроется снова для этого производителя. Я заметил, что если я открою окно на одном маркере (Маркер A), а затем закрою его, а затем открою на другом маркере (Маркер B), а затем вернусь к Маркеру A, окно появится рядом с Маркер A , но с содержанием маркера B.
Почему мой сценарий не устанавливает содержимое элемента DOM во второй раз ... Это почти как использование селектора jQuery для удаления элемента из DOM.
Приветствия
whiteatom
Привет еще раз,
Оказывается, я мог ответить на свой вопрос, когда пытался объяснить его здесь.
Передача элемента DOM в функцию setContent (), кажется, фактически удаляет его из DOM и помещает в infoWindow, поэтому в следующий раз, когда я попытаюсь его схватить, его больше нет. Я решил добавить clone () к вызову jQuery, и теперь он работает.
google.maps.event.addListener(marker, 'click', function(){
infoWindow.setContent($(#"+id+"-window-content).clone()[0]);
infoWindow.open(map, marker);
}
Может ли кто-нибудь подтвердить, что это поведение setContent, когда ему передается элемент DOM? это лучший способ справиться с этим?
Приветствия
whiteatom