Google Maps API v3: 如何删除事件监听器?

如何删除 谷歌地图 API v3中的‘ bound _ change’事件侦听器?

google.maps.event.removeListener(_???_);
105828 次浏览

addListener returns a handle which you can later pass to removeListener:

var listenerHandle = google.maps.event.addListener(map, 'bounds_changed', function() {


google.maps.event.removeListener(listenerHandle);

Usually you can find answers to such questions in Google Maps API documentation.

As Andrew said, addListener returns a handle which you can use later to remove the listener. That's because a single event can have many listeners and to remove them you must save a reference to each of attached listeners.

There's also a function which removes all of the listeners at the same time:

clearListeners(instance:Object, eventName:string);
//In your case:
google.maps.event.clearListeners(map, 'bounds_changed');

Here's the Google Maps API reference where you can read about it.

This seems to work in the current release.

var listenerHandle = google.maps.event.addListener(map, 'bounds_changed', function() {
// Handler code.
});
listenerHandle.remove();

If you couldnt hold the listener object somehow you could remove listener(s) directly as google.maps.event.clearListeners(objectListened, 'event');

Ex: google.maps.event.clearListeners(map, 'bounds_changed');