Làm cách nào để xóa trình xử lý Sự kiện 'bounds_changed' trong API Google Maps v3 ?
google.maps.event.removeListener(_???_);
Làm cách nào để xóa trình xử lý Sự kiện 'bounds_changed' trong API Google Maps v3 ?
google.maps.event.removeListener(_???_);
Câu trả lời:
Thông thường, bạn có thể tìm thấy câu trả lời cho những câu hỏi như vậy trong tài liệu API của Google Maps.
Như Andrew đã nói, addListener trả về một xử lý mà bạn có thể sử dụng sau này để xóa trình nghe. Đó là bởi vì một sự kiện đơn lẻ có thể có nhiều người nghe và để xóa chúng, bạn phải lưu một tham chiếu đến từng người nghe đính kèm.
Ngoài ra còn có một chức năng loại bỏ tất cả người nghe cùng một lúc:
clearListeners(instance:Object, eventName:string);
//In your case:
google.maps.event.clearListeners(map, 'bounds_changed');
Đây là tài liệu tham khảo API Google Maps mà bạn có thể đọc về nó.
google.maps.event.clearListeners(map, 'idle')
làm. Nhưng map.clearListeners('idle')
không. Cú pháp đó hoạt động cho mọi thứ khác trong API ( .addListener
, v.v.). Kỳ quặc.
addListener trả về một xử lý mà sau này bạn có thể chuyển đến removeListener:
var listenerHandle = google.maps.event.addListener(map, 'bounds_changed', function() {
google.maps.event.removeListener(listenerHandle);
Điều này dường như hoạt động trong bản phát hành hiện tại.
var listenerHandle = google.maps.event.addListener(map, 'bounds_changed', function() {
// Handler code.
});
listenerHandle.remove();
listenerHandler.remove()
hoạt động cho các trình nghe lớp dữ liệu - tức là google.maps.data.addListener
- vì KHÔNG có google.maps.data.removeListener
phương pháp nào được định nghĩa.
Nếu bạn không thể giữ đối tượng người nghe bằng cách nào đó, bạn có thể xóa (các) người nghe trực tiếp bằng google.maps.event.clearListeners(objectListened, 'event');
Ví dụ: google.maps.event.clearListeners(map, 'bounds_changed');