Как я добавляю и удаляю слушателя события, использующего функцию с параметрами?

Извините, если это - общий вопрос, но я не мог бы найти ответы, которые казались подходящими посредством поиска.

Если я присоединяю слушателя события как это:

window.addEventListener('scroll', function() { check_pos(box); }, false);

это, кажется, не работает, чтобы попытаться удалить его позже, как это:

window.removeEventListener('scroll', function() { check_pos(box); }, false);

Я предполагаю, что это вызвано тем, что addEventListener и removeEventListener методы хотят ссылку на ту же функцию, в то время как я предоставил им анонимные функции, которые, в то время как идентичный в коде, не являются буквально тем же.

Как я могу изменить свой код для получения вызова к removeEventListener работать? Аргумент "поля" относится к названию <iframe> то, что я отслеживаю на экране; то есть, я хочу смочь подписаться на scroll событие однажды для каждого <iframe> то, что я имею (количество варьируется), и однажды check_pos() функционируйте измеряет определенное положение, оно вызовет другую функцию и также удалит слушателя события свободного системные ресурсы.

Моя догадка - то, что решение включит закрытие и/или именование анонимной функции, но я не уверен точно, на что это похоже и ценило бы конкретный пример.

Надежда, которая имеет смысл.

27
задан Brian Tompsett - 汤莱恩 21 August 2019 в 21:18
поделиться

1 ответ

var listener;

listener = function(){

if( window.target != anotherEvent.target )
{
    ...CODE where

    window.removeEventListener('click', listener , false);

};

window.addEventListener('click', listener ,false);
3
ответ дан Daniel 28 November 2019 в 05:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: