@kir_lab

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

Не могу понять почему не работает. Если событие вешать на каждую кнопку, все ок, а с addEventListener не работает
<!DOCTYPE html>
<html>
 <head>
   <meta charset="utf-8">
   <script>
var one = document.getElementById('one');
function hid() {alert('hello');}
one.addEventListener('click', hid, false);
</script>
 </head>
 <body>
     
 	<div class = "calculator">
     <button id='one' > 1</button>
 	 <button id='two'> 2</button>
 		</div>
 </body>
</html>
  • Вопрос задан
  • 10408 просмотров
Решения вопроса 1
@GreatRash
На момент выполнения скрипта ещё не сформировался DOM. Вам либо надо дождаться загрузки страницы (onload), либо загрузки DOM (DOMContentLoaded), либо поместить скрипт перед закрывающим body.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
sfi0zy
@sfi0zy Куратор тега JavaScript
Creative frontend developer
У вас скрипт выполняется раньше, чем создаются кнопки. Уберите его в конец body или заверните в
$( document ).ready(function() {
    // Your code
});

или любой аналог этого на чистом JS (без jQuery)
Ответ написан
Комментировать
sergey-gornostaev
@sergey-gornostaev
Седой и строгий
function hid() {
    alert('hello');
}

document.addEventListener("DOMContentLoaded", function() {
    var one = document.getElementById('one');
    one.addEventListener('click', hid, false);
});
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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