2015-03-13 7 views
1

Я понимаю, как удаляется прослушиватель событий, однако, что делать, если я хочу удалить обработчик, который принимает аргументы?JS: Удаление прослушивателей событий с обработчиками, которые принимают аргументы

Допустим, у меня есть обработчик:

function handler(param1, param2){ 
    // do stuff with param1, param2 
} 

И я добавляю выше обработчик узла DOM

domNode.addEventListener("click", function(){ 
    // invoking the handler here with arguments 
    handler(this.style.color, this.style.backgroundColor); 
} 

Как идти об удалении подобных вышеперечисленное с помощью функции-оболочки слушатель?

Cheers

+0

'handler' не является технически«обработчик», скорее, это' функция 'чье имя' handler'. –

ответ

3

Вы не можете использовать анонимную функцию. Вы должны будете использовать указанную функцию вместо:

function callHandler(){ 
    // invoking the handler here with arguments 
    handler(this.style.color, this.style.backgroundColor); 
} 

domNode.addEventListener("click", callHandler); 

Чтобы удалить его, то вы можете позвонить removeEventListener:

domNode.removeEventListener('click', callHandler); 
Смежные вопросы