Удаление прослушивателя событий с анонимным прослушивателем

Моя проблема в том, что я пытаюсь удалить прослушиватель событий на javascript. У меня был такой же анонимный слушатель, как и я передавал параметры. Проблема в том, что позже в моем коде мне нужно удалить прослушиватель событий из всех изображений. Я понимаю, что мне нужно переписать свой код, чтобы дать ему какой-то идентификатор, но я действительно борюсь. Вот часть моего кода, которую нужно изменить, любая помощь будет отличной.

var images = document.getElementsByTagName("img");
for (var i = 0; i < 4; i++)
{
    listenForI(i);
}

function listenForI(i)
{
    images[i].addEventListener("click",function()
    {
        changeImage(i);
    });
}

person Dalek    schedule 23.02.2015    source источник
comment
@Barmar - принятый ответ неверен, обработчик событий легко удалить - ›jsfiddle.net/t2p50o22 < / а>   -  person adeneo    schedule 24.02.2015
comment
@adeneo Они не анонимны, их называют. Причина, по которой он использует анонимную функцию, заключается в том, что ему нужны замыкания, сохраняющие переменную i, чего не делает ваш код.   -  person Barmar    schedule 24.02.2015
comment
@Dalek Но код adeneo показывает, что вам НЕ НУЖНО сохранять i в закрытии. Используйте именованную функцию, и она может получить доступ к элементу изображения с помощью this.   -  person Barmar    schedule 24.02.2015
comment
@Barmar - это была моя точка зрения, удаление всех странных циклов, поскольку ссылка на функцию дает вместо этого this и возможность удалить обработчик событий. Однако есть ответ, показывающий removeEventHandler в этом обмане, и вопрос почти такой же, это просто принятый ответ, который отстой, добавление к основному объекту, а не кода и т. Д.   -  person adeneo    schedule 24.02.2015
comment
По сути, это проблема XY. Вместо того, чтобы спрашивать, как удалить анонимный обработчик событий, он должен спросить, как он может использовать именованные обработчики событий, чтобы делать то, что он хочет. В качестве альтернативы, вместо удаления обработчиков, они могут просто проверить глобальную переменную, которая говорит, должны ли они что-либо делать.   -  person Barmar    schedule 24.02.2015
comment
Спасибо за помощь, ребята, мой код сейчас работает: D.   -  person Dalek    schedule 24.02.2015