@web-quest3

Не работает js код (не видит элемента)?

почему если разнести это по файлам
<input id="elem" type="button" value="Нажми меня" />
<script>
  elem.onclick = function() {
    alert( 'Спасибо' );
  };
</script>


и джс подключить как положено в хеаде код не отработает?
Даже если использовать
событие лоад или контентреади
  • Вопрос задан
  • 2095 просмотров
Решения вопроса 1
@KFan
Веб-программист
Вы подключаете скрипт в head, а элемент находится дальше по дереву, во время выполнения он еще просто напросто не успел определится, а вы к нему уже обращаетесь.

В данном случае, решение - это переместить подключение скрипта в конец.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
e_snegirev
@e_snegirev
document.getElementById()
Ответ написан
@tuvvi
JS dev
Сам над тем же вопросом сидел. Вот, что вышло:

document.addEventListener("DOMContentLoaded", function() {
  let butt = document.getElementById("butt");
  butt.addEventListener("click", myFunc);
});

function myFunc() {
  alert("Done!");
}


Фишка в том, чтобы дождаться загрузки страницы и на это событие повесить колбэк, в виде навешивания addEventListener (только сначала сделать getElementById).
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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