@SergeiB

Как удалить обработчик события в Google Maps?

Удаление обработчиков событий в Google Maps описано тут. Как применить эту информацию в моём случае? Не могу разобраться, как сделать это, если применяется цикл.
document.getElementById('myCheckbox').addEventListener('change', function() {
  if (this.checked) {
    for (var i = 0; i < markers.length; i++) {
      var listener = google.maps.event.addListener(markers[i], 'dblclick', function() {
        map.setZoom(17);
        map.panTo(this.getPosition());
      });
    }
  } else {
    // Тут должно произойти удаление обработчиков, что-то типа
    // google.maps.event.removeListener(listener);
  }
});
  • Вопрос задан
  • 52 просмотра
Решения вопроса 2
freeExec
@freeExec
Участник OpenStreetMap
for (var i = 0; i < markers.length; i++) {
      google.maps.event.clearListeners(markers[i], 'dblclick');
});
Ответ написан
@SergeiB Автор вопроса
Решил проблему таким образом:
var listeners = [];

document.getElementById('myCheckbox').addEventListener('change', function() {
  if (this.checked) {
    for (var i = 0; i < markers.length; i++) {
      var listener = google.maps.event.addListener(markers[i], 'dblclick', function() {
        map.setZoom(17);
        map.panTo(this.getPosition());
      });
      listeners.push(listener);
    }
  } else {
    for (var i = 0; i < listeners.length; i++) {
      google.maps.event.removeListener(listeners[i]);
    }
  }
});
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
22 нояб. 2024, в 12:20
10000 руб./за проект
22 нояб. 2024, в 11:53
3000 руб./за проект
22 нояб. 2024, в 11:51
20000 руб./за проект