Почему простой код JavaScript не выполняется?

#javascript-events

#javascript #dom-события

Вопрос:

Почему простой код JavaScript не выполняется?

 <script type="text/javascript" charset="utf-8">

var btn = document.getElementById("myBtn");
btn.onclick = function(){
alert("Clicked");
};
    
</script>

</head>


<body>
    
    <a id="myBtn" href="#">click me </a>
    
</body>
  

Комментарии:

1. Работает ли это, если вы добавляете return false; в конец функции? А вы пробовали это в другом браузере? У меня такое чувство, что оповещение заблокировано

Ответ №1:

Назначьте свой обработчик onclick после загрузки документа.

 <script type="text/javascript" charset="utf-8">

function assignHandler() {
    var btn = document.getElementById("myBtn");
    btn.onclick = function() {
        alert("Clicked");
    };
}

</script>

<body onload="assignHandler()">
<a id="myBtn" href="#">click me </a>
</body>
  

Ответ №2:

порядок

 <a id="myBtn" href="#">click me </a>
<script type="text/javascript" charset="utf-8">

var btn = document.getElementById("myBtn");
btn.onclick = function(){
alert("Clicked");
};

</script>
  

Комментарии:

1. Это сработало, но что, если скрипт назначен внешнему файлу и включен в заголовок?

Ответ №3:

Взгляните на это. Блок javascript должен быть после элемента html:

Ваш код работает, но его лучше использовать следующим образом:

 var btn =
document.getElementById('myBtn');
btn.addEventListener('click',function
(e) {   alert('my click works after the html element has been created');
},true);