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>
  • Вопрос задан
  • 84 просмотра
Решения вопроса 1
samdeweb
@samdeweb
Начинающий верстальщик
Ответ Dima Polos более креативен, я объясню конкретнее)

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

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


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

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

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

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