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

时间:2009-10-09 14:33:07

标签: javascript google-maps google-maps-api-3

如何删除Google Maps API v3中的'bounds_changed'事件侦听器?

google.maps.event.removeListener(_???_);    

4 个答案:

答案 0 :(得分:146)

通常,您可以在Google Maps API文档中找到此类问题的答案。

正如安德鲁所说,addListener返回一个句柄,稍后您可以使用它来删除侦听器。这是因为单个事件可以拥有许多侦听器并删除它们,您必须保存对每个连接侦听器的引用。

还有一个函数可以同时删除所有的侦听器:

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

Here's the Google Maps API reference你可以在那里阅读它。

答案 1 :(得分:88)

addListener返回一个句柄,稍后您可以将其传递给removeListener:

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

google.maps.event.removeListener(listenerHandle);

答案 2 :(得分:14)

这似乎适用于当前版本。

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

答案 3 :(得分:0)

如果您无法以某种方式保持侦听器对象,则可以将侦听器直接删除为google.maps.event.clearListeners(objectListened, 'event');

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