Usunięcie eventListenera

0

W jaki sposób usunąć evetListener, w którym użyta jest funkcja strzałkowa? Mam coś takiego:

function stickyMenu() {
    if (window.pageYOffset >= sticky) {
        navbar.classList.add("sticky");
        hiddenMenu();
    } else {
        navbar.classList.remove("apperanceClass");
        navbar.classList.remove("disapperanceClass");
        navbar.classList.remove("sticky");
        window.removeEventListener('wheel', (e) => {
            if (e.isTrusted) {
                if (navbar.classList.contains("apperanceClass")) {
                    navbar.classList.remove("apperanceClass");
                    navbar.classList.add("disapperanceClass");
                } else {
                    navbar.classList.remove("disapperanceClass");
                    navbar.classList.add("apperanceClass");
                }
            }
        }); 
    }
}

function hiddenMenu() {
   window.addEventListener('wheel', (e) => {
        if (e.isTrusted) {
            if (navbar.classList.contains("apperanceClass")) {
                navbar.classList.remove("apperanceClass");
                navbar.classList.add("disapperanceClass");
            } else {
                navbar.classList.remove("disapperanceClass");
                navbar.classList.add("apperanceClass");
            }
        }
    });
}

ale nie działa

4

Każda funkcja strzałeczkowa jest tak jakby "unikalna" - tzn. nawet jeśli ich ciała są te same, dla JSa są to dwie zupełnie różne funkcje; musisz najpierw tę funkcję gdzieś przypisać:

const handleWheel = (e) => {
  /* ... */
};

window.addEventListener('wheel', handleWheel);
window.removeEventListener('wheel', handleWheel);

1 użytkowników online, w tym zalogowanych: 0, gości: 1