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
  • Вопрос задан
  • 1678 просмотров
Решения вопроса 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.

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

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

Войти через центр авторизации
Похожие вопросы
10 мая 2024, в 11:47
500 руб./за проект
10 мая 2024, в 11:36
30000 руб./за проект
10 мая 2024, в 11:27
1000 руб./за проект