Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Удаление события (https://javascript.ru/forum/events/78549-udalenie-sobytiya.html)

Nlk 01.10.2019 13:29

Удаление события
 
Добрый день!

Не получается удалить событие, функция которого является 'тротл'. Подскажите пожалуйста что не так делаю? И как удалить?

function throttle(fn, wait) {
        var time = Date.now();
        return function() {
            if ((time + wait - Date.now()) < 0) {
                fn();
                time = Date.now();
            }
        }
    }

    document.addEventListener("scroll", throttle(showFadeElem, 300), false);
    

    document.removeEventListener("scroll", throttle, false); // не работает

рони 01.10.2019 14:29

Nlk,
function throttle(fn, wait) {
        var time = Date.now();
        return function() {
            if ((time + wait - Date.now()) < 0) {
                fn();
                time = Date.now();
            }
        }
    }
    var fade = throttle(showFadeElem, 300);
    document.addEventListener("scroll", fade, false);


    document.removeEventListener("scroll", fade, false);

Nlk 01.10.2019 15:05

рони,
спасибо большое!

MallSerg 01.10.2019 15:11

Цитата:

Сообщение от Nlk (Сообщение 513381)
Подскажите пожалуйста что не так делаю?

Вызываешь функцию и возвращенную анонимную функцию передаешь в addEventListener вместо того чтобы передать функцию throttle.


Часовой пояс GMT +3, время: 23:11.