Google Maps API v3'te 'bounds_changed' Etkinlik dinleyicisini nasıl kaldırırım ?
google.maps.event.removeListener(_???_);
Google Maps API v3'te 'bounds_changed' Etkinlik dinleyicisini nasıl kaldırırım ?
google.maps.event.removeListener(_???_);
Yanıtlar:
Genellikle bu tür soruların yanıtlarını Google Haritalar API belgelerinde bulabilirsiniz.
Andrew'un dediği gibi, addListener daha sonra dinleyiciyi kaldırmak için kullanabileceğiniz bir tutamaç döndürür. Bunun nedeni, tek bir olayın birçok dinleyiciye sahip olabilmesidir ve bunları kaldırmak için ekli dinleyicilerin her birine bir başvuru kaydetmeniz gerekir.
Tüm dinleyicileri aynı anda kaldıran bir işlev de vardır:
clearListeners(instance:Object, eventName:string);
//In your case:
google.maps.event.clearListeners(map, 'bounds_changed');
İşte hakkında okuyabileceğiniz Google Haritalar API referansı .
google.maps.event.clearListeners(map, 'idle')
İşler. Ama map.clearListeners('idle')
yapmaz. Bu sözdizimi, API'deki ( .addListener
vb.) Diğer her şey için çalışır . Garip.
addListener, daha sonra removeListener'a iletebileceğiniz bir tutamaç döndürür:
var listenerHandle = google.maps.event.addListener(map, 'bounds_changed', function() {
google.maps.event.removeListener(listenerHandle);
Bu, mevcut sürümde işe yarıyor gibi görünüyor.
var listenerHandle = google.maps.event.addListener(map, 'bounds_changed', function() {
// Handler code.
});
listenerHandle.remove();
listenerHandler.remove()
, veri katmanı dinleyicileri için de işe yaramasıdır - yani google.maps.data.addListener
- google.maps.data.removeListener
tanımlanmış HİÇBİR yöntem olmadığı için .
Dinleyici nesnesini bir şekilde tutamazsanız, dinleyicileri doğrudan şu şekilde kaldırabilirsiniz: google.maps.event.clearListeners(objectListened, 'event');
Ör: google.maps.event.clearListeners(map, 'bounds_changed');