Задать вопрос
ZiEnTenIn
@ZiEnTenIn

Почему не существует объекта addEventListener?

Не могу сделать простейший обработчик событий.
Облазил все сайты. Везде пишут, что нужно делать через addEventListener:

var btn = document.querySelector("button");
btn.addEventListener('click', function() {
    console.log("OK");
}

Но мне в консоли высвечивает:
script.js:5 Uncaught TypeError: btn.addEventListener is not a function
    at script.js:5
  • Вопрос задан
  • 1899 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 2
alexey-m-ukolov
@alexey-m-ukolov Куратор тега JavaScript
В переменной btn у вас не DOM-элемент, а что-то иное. И у этого чего-то нет метода addEventListener.

Глядя в документацию мы видим, что querySelector возвращает DOM-элемент или null:
Document метод querySelector() возвращает первый элемент (Element) документа, который соответствует указанному селектору или группе селекторов. Если совпадений не найдено, возвращает значение null.
https://developer.mozilla.org/ru/docs/Web/API/Docu...

Следовательно, у вас проблема с селектором. В приведённом коде он берётся из какой-то переменной. Возможно, вы хотели написать там строку "button"?
Ответ написан
Stalker_RED
@Stalker_RED
Для начала, addEventListener - это не объект, а метод, который есть у объектов, поддерживающих интерфейс EventTarget.

Он у вас не найден потому, что в переменной btn содержится что-то другое, не поддерживающее такой метод.

Если вы проверите что там в этой переменной, то узнаете, что там скорее всего null.

И останется только догадаться почему он там. (Подсказка: скорее всего вы ищете кнопку на странице еще ДО того как страница загрузилась)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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