google-maps - description - html google map popup



Google Maps infowindow.setContent는 jQuery에서 DOM 요소로 한 번만 작동하는 것처럼 보입니까? (2)

DOM에서 요소의 부모를 변경하면 요소는 복사되지 않고 이동됩니다.

그래서 나는이 줄을 추측 할 것이다.

infoWindow.setContent($(#"+id+"-window-content)[0]);

"# id-window-content"요소를 원래 위치에서 제거합니다.

infoWindow가 닫히면 DOM 요소가 삭제됩니다.

따라서 두 번째 마커를 클릭하면 요소가 더 이상 존재하지 않습니다.

요소를 복제하거나 HTML 문자열을 infoWindow에 제공하십시오.

희망이 도움이

https://src-bin.com

나는 매우 좌절감을 느끼고 있으며, 여기있는 누군가가 도울 수 있기를 바라고 있습니다. 나는 맵핑 앱을 가지고 있는데, 정보가 정기적으로 업데이트되는 infoWindow가있는 맵에 여러 마커가 있습니다. 내 솔루션은 백그라운드에서 내 업데이터 코드에 의해 업데이트 될 수있는 숨겨진 컨테이너에있는 DOM의 infoWindow에 들어갈 div를 배치하는 것이 었습니다. 그런 다음 하나의 infoWindow를 사용하고 쿼리를 사용하여 DOM 요소에 내용을 설정합니다.

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

그 일은 훌륭합니다 ... 한 번. 그런 다음 해당 제작사를 위해 다시 열리지 않습니다. 한 마커 (마커 A)에서 창을 연 다음 닫은 다음 다른 마커 (마커 B)에서 열어 마커 A로 돌아 가면 마커 A 옆에 창이 나타납니다. Marker B의 콘텐츠가 포함되어 있습니다.

내 스크립트가 두 번째로 DOM 요소에 콘텐츠를 설정하지 않는 이유는 ... jQuery 선택기를 사용하는 것이 DOM에서 요소를 삭제하는 것과 거의 같습니다.

건배,

화이트

다시 안녕,

나가 그것을 여기에서 설명하는 것을 시도 할 때 나는 나 자신의 질문에 응답 할지도 모른다.

DOM 요소를 setContent () 함수에 전달하면 실제로 DOM에서 해당 요소가 제거되어 infoWindow에 배치되므로 다음에 시도하고 잡을 때 더 이상 존재하지 않게됩니다. 제 수정은 jQuery 호출에 clone ()을 추가하는 것이 었습니다. 이제는 작동하는 것 같습니다.

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

누구든지 DOM 요소가 전달 될 때 setContent의 동작을 확인할 수 있습니까? 이것을 처리하는 가장 좋은 방법입니까?

건배,

화이트


Answer #1

그것은 사실 jQuery 도구와 함께 infoWindows와 복제본 (이벤트 및 데이터의 복제본 (클론 (true, true) 포함)을 가지고 있어도 탭을 가지고 있기 때문에 사실 더 복잡해졌습니다. infoWindow에서 탭이 사라졌습니다.

그래서 .. 원래 div였던 부분을 옮긴 다음 새로운 infoWindow 내용을 추가하기 전에 그것을 뒤로 되돌립니다.

google.maps.event.addListener(marker, 'click', function(){
     infoWindow.close();
     if(typeof infoWindow.content == "object")
         $("#info-window-container").append(infoWindow.getContent());
     infoWindow.setContent($(#"+id+"-window-content)[0]);
     infoWindow.open(map, marker);
}

이 또한 내 updater 스크립트가 # "+ id +"- window-content div를 업데이트 할 수있는 장점이 있으며 열려있는 동안에도 infoWindow를 업데이트 할 수 있다고 생각합니다. :)

당신의 도움을 주셔서 감사합니다...





google-maps-api-3