Извините, если это обычный вопрос, но я не смог найти ответы, которые показались бы уместными при поиске.
Если я прикрепляю слушателя событий так:
window.addEventListener('scroll', function() { check_pos(box); }, false);
не похоже, чтобы попытаться удалить его позже, например:
window.removeEventListener('scroll', function() { check_pos(box); }, false);
Я предполагаю, что это потому, что методы addEventListener
и removeEventListener
хотят ссылаться на одну и ту же функцию, в то время как я предоставил им анонимные функции, которые, хотя и идентичны в коде, буквально не совпадают.
Как я могу изменить свой код, чтобы заставить работать removeEventListener
? Аргумент «box» относится к имени <iframe>
, которое я отслеживаю на экране; то есть я хочу иметь возможность подписаться на событие scroll
один раз для каждого моего <iframe>
(количество варьируется), и как только функция check_pos()
измеряет определенную позицию, она вызывает другую функцию, а также удалите прослушиватель событий, чтобы освободить системные ресурсы.
Я догадываюсь, что решение будет заключаться в закрытии и / или именовании анонимной функции, но я не совсем уверен, как это выглядит, и был бы признателен за конкретный пример.
Надеюсь, это имеет смысл. Спасибо за любую помощь!