Google Maps API v3 에서 'bounds_changed'이벤트 리스너를 제거하려면 어떻게해야 합니까?
google.maps.event.removeListener(_???_);
Google Maps API v3 에서 'bounds_changed'이벤트 리스너를 제거하려면 어떻게해야 합니까?
google.maps.event.removeListener(_???_);
답변:
일반적으로 Google Maps API 문서에서 이러한 질문에 대한 답변을 찾을 수 있습니다.
Andrew가 말했듯이 addListener는 나중에 리스너를 제거하는 데 사용할 수있는 핸들을 반환합니다. 이는 단일 이벤트에 많은 리스너가있을 수 있고이를 제거하려면 연결된 각 리스너에 대한 참조를 저장해야하기 때문입니다.
동시에 모든 리스너를 제거하는 함수도 있습니다.
clearListeners(instance:Object, eventName:string);
//In your case:
google.maps.event.clearListeners(map, 'bounds_changed');
여기에 대해 읽을 수 있는 Google Maps API 참조 가 있습니다.
google.maps.event.clearListeners(map, 'idle')
공장. 하지만 map.clearListeners('idle')
그렇지 않습니다. 이 구문은 API ( .addListener
등)의 다른 모든 항목에서 작동합니다 . 이상한.
addListener는 나중에 removeListener에 전달할 수있는 핸들을 반환합니다.
var listenerHandle = google.maps.event.addListener(map, 'bounds_changed', function() {
google.maps.event.removeListener(listenerHandle);
이것은 현재 릴리스에서 작동하는 것 같습니다.
var listenerHandle = google.maps.event.addListener(map, 'bounds_changed', function() {
// Handler code.
});
listenerHandle.remove();
listenerHandler.remove()
데이터 레이어 리스너에게도 작동 한다는 google.maps.data.addListener
것입니다 google.maps.data.removeListener
.
어떻게 든 리스너 객체를 보유 할 수 없다면 리스너를 직접 제거 할 수 있습니다. google.maps.event.clearListeners(objectListened, 'event');
전의: google.maps.event.clearListeners(map, 'bounds_changed');