Здравствуйте. Не получается самостоятельно разобраться с setTimeout. В чём проблема - необходимо переключать стили элемента по событию через паузу. Что я делаю внутри обработчика события - window.setTimeout(document.querySelector(".some-selector").classList.toggle('active'), 300);
Всё работает, но без задержки. В чём проблема?
Все очень просто. Первым аргументом для setTimeout
нужно передавать функцию, вторым - время задержки. Вы же передаете первым аргументом результат выполнения функций document.querySelector(".some-selector").classList.toggle('active')
Т.е. по сути передаете первым аргументом то, что вернет вам вызов .toggle('active')
. А вернет он вам true
или false
, если верить справочке.
Чтобы сделать правильно, вам нужно обернуть код, который необходимо выполнить, в анонимную функцию. Вот так:
window.setTimeout(function() {
document.querySelector(".some-selector").classList.toggle('active')
}, 300);
Теперь первый аргумент для setTimeout
- ваша анонимная функция. Когда придет время, она будет вызвана, и необходимый код внутри этой функции будет выполнен.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Есть такой код, нужно отсортировать статьи по дате при нажатии на кнопку Sort by date, но без jQuery, всяких плагинов и тд
Как добавить HTML код определенных элементов в куки?Точнее есть генератор который при нажатии генерирует div элемент с рандомным цветом и в рандомный...
Калькулятор состоит из нескольких чекбоксов, ползунков и селектовИ в принципе работает, но обновление результатов происходит только после...