@Stoble

Почему не работает setTimeout?

Почему не работает setTimeout в этом коде
let items = document.querySelectorAll('.header__under--item')

for (let i = 0; i < items.length; i++) {
    let item = items[i];
    let childOne = item.children[1]
    console.log(childOne)
    item.addEventListener('mouseover', ()=>{
        addClass(childOne)
    })

    item.addEventListener('mouseout', ()=>{
        setTimeout(removeClass(childOne), 5000)
    })
    
}


function addClass(childOne) {
    childOne.classList.add('hidden')
}

function removeClass(childOne) {
    childOne.classList.remove('hidden')
}
  • Вопрос задан
  • 54 просмотра
Решения вопроса 1
Aetae
@Aetae Куратор тега JavaScript
Тлен
Потому что removeClass(childOne) - это вызов функции removeClass с параметром childOne прямо тут где указано. По таймауту же происходит вызов возвращённого функцией removeClass значения(в данном случае undefined).
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@vdem
setTimeout(function() {
    removeClass(childOne);
}, 5000);
Ответ написан
Комментировать
yarkov
@yarkov Куратор тега JavaScript
Помог ответ? Отметь решением.
setTimeout(() => {
  removeClass(childOne);
}, 5000)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы