함수 모듈을 디버깅할 때 정보창에 추가된 div가 어떤 방법을 사용해도 이벤트에 바인딩될 수 없다는 것을 발견했습니다. 우울하다! 인터넷에서 여러 메소드를 검색해봐도 소용이 없었습니다.
생각한 후 공식 API를 확인해보니 google.maps.InfoWindow 아래의 이벤트에 domready 이벤트가 있다는 것을 발견했습니다
공식 설명:
이 이벤트는 InfoWindow의 콘텐츠가 DOM에 첨부될 때 시작됩니다. 정보 창 콘텐츠를 동적으로 구축하는 경우 이 이벤트를 모니터링할 수 있습니다.
일반적인 의미는 InfoWindow입니다. 동적으로 추가된 Dom 요소가 완료된 후의 콜백 함수입니다.
JS는 단일 스레드 엔진이므로 DOM이 생성된 후에만 이벤트를 바인딩할 수 있습니다. 이는 이해하기 매우 간단합니다.
동료가 작성한 js 코드를 보면 setTimeout 등의 지연이 많이 있습니다. 스크립트의 원활한 실행이 이해되지 않았는지 몇 초의 지연 후에 실행될 것이라고 생각했습니다. .사실 문제는 엄청납니다. 어떤 스크립트를 먼저 실행하고 어떤 스크립트를 나중에 실행해야 하는지는 모두 순서대로입니다.
google.maps.event.addDomListener googleMap에서 제공하는 Dom 요소 이벤트를 수신하기 위한 코드
: