Amina779
@Amina779

Как вызвать функцию через 5 секунд после клика?

Всем привет, мне нужно вызвать функцию через 5 секунд после клика. Как я могу это сделать?
Вот то что я уже написала

<input class="btn btn-purple btn-block" type="submit" name="up" value="Up" onclick="up()">


function up() {
            function sayHi() {
              alert('Привет');
            }

            setTimeout(sayHi, 5000);
        }


Но это почему-то не работает.
  • Вопрос задан
  • 490 просмотров
Пригласить эксперта
Ответы на вопрос 2
bingo347
@bingo347 Куратор тега JavaScript
Crazy on performance...
Функция up должна корректно решать поставленную задачу
Скорее всего проблема в обработчике события.
Атрибуты вроде onclick работают только с глобальным контекстом, лучше их не использовать

Правильнее выбрать input из DOM (например с помощью document.querySelector) и навешать обработчик через метод элемента addEventListener

Так же важно помнить, что выбор элемента нужно делать после того, как он появится на странице, лучше всего для этих целей подходит событие DOMContentLoaded у document:
document.addEventListener('DOMContentLoaded', function() {
  // здесь спокойно можем делать document.querySelector
});
Ответ написан
Комментировать
dimastik1986
@dimastik1986
учусь
codepen
function sayHi() {
    setTimeout("alert('Привет')", 5000);
}

<input class="btn btn-purple btn-block" type="submit" name="up" value="Up" onclick="sayHi();">
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы