Удалить маркер слушателей - PullRequest
5 голосов
/ 20 июля 2010

довольно простая проблема (чтобы объяснить) на этот раз:

У меня есть массив маркеров, которые я таким образом оборудую с помощью EventListener:хочу, чтобы слушатель был удален после того, как на него нажали.

проблема в том, что я не знаю, каков дескриптор для слушателя.

Ответы [ 4 ]

5 голосов
/ 20 июля 2010

Вы можете использовать «addListenerOnce». Тогда вам даже не придется убирать слушателя.

addListenerOnce (пример: Объект, eventName: строка, обработчик: функция)

Как event.AddListener, но обработчик удаляет себя после обработки первое событие.

2 голосов
/ 20 июля 2010

Вы также можете использовать clearListeners(instance:Object, eventName:string)http://code.google.com/apis/maps/documentation/javascript/reference.html

0 голосов
/ 01 октября 2017

Старый пост, но документация в настоящее время показывает: https://developers.google.com/maps/documentation/javascript/events#removing

var listener1 = marker.addListener('click', aFunction);
var listener2 = marker.addListener('mouseover', bFunction);

// Remove listener1 and listener2 from marker instance.
google.maps.event.clearInstanceListeners(marker);
0 голосов
/ 20 июля 2010

Я вполне уверен, что в этом случае вы бы использовали массив слушателей (или объект, который инкапсулировал маркеры И слушателей). google.maps.event возвращает объект события. Проверьте документацию .

var markersListeners = [];

for (i in markersArray)
{
    markersListeners[i] = google.maps.event.addListener(markersArray[i], 'click', function()
    {
        //stuff it does
        google.maps.event.removeListener(markersListeners[i]);
    });
}

Отказ от ответственности: Я не проверял синтаксис. Вы также можете попробовать удалить removeListener (markersArray [i]), как я видел, но не знаете, работает ли он.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...