Denis__Ku
@Denis__Ku

Почему при клике обработчик не срабатывает?

Подскажите, пожалуйста, почему данный обработчик при клике на кнопку не срабатывает? В чем причина? Заранее, спасибо!

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>JS обработчики</title>
    <script>
    
    document.getElementById('btn').onclick = function() {
        alert("Спасибо!");
    }
    
    </script>
</head>
<body>
    
    <input type="button" id="btn" value="Нажмите на кнопку!">

</body>
</html>
  • Вопрос задан
  • 78 просмотров
Решения вопроса 1
samdeweb
@samdeweb
Я верстальщик.
Ответ Dima Polos более креативен, я объясню конкретнее)

Скрипт нужно написать внизу страницы либо написать код для того, чтобы JavaScript запускался тогда, когда DOM уже загружен до конца. Примерно так:

document.addEventListener('DOMContentLoaded', function(){
    // Здесь код
});


Причина того, что ваш код не работает в том, что элементы страницы не успевают загружаться тогда, когда JavaScript начинает свою работу. Соответсвенно, скрипт ищет элемент с id "btn" и не находит его. Дальше уже ясно что код не будет работать, поскольку такого элемента фактический нет.

Поэтому либо переносим скрипт после input, либо с помощью кода выше. Успехов вам!
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
dimovich85
@dimovich85
JS is everywhere
Заходит такой Java Script в пустой DOM, а ему говорит начальник-программист:
- Найди элемент по id, и пусть при клике он что-то делает!
А Java Script отвечает:
- Что-то такой элемент не иначе, как undefined!
И ничего не делает...
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
Александрия Москва
от 200 000 до 250 000 руб.
Foodtronics Москва
от 100 000 до 200 000 руб.
Алгоритмика Москва
от 120 000 до 200 000 руб.
21 авг. 2019, в 14:20
15000 руб./за проект
21 авг. 2019, в 13:40
25000 руб./за проект