Задать вопрос
@wiigusev
Изучаю Web разработку

Почему не срабатывает addEventListener при событии click?

Добрый день.
После того, как я добавил загрузку данных с сервера c помощью XMLHttpRequest перестало работать событие click.

Пример элементов, на который вешаю событие.
<div>
   <a href="#" class="picture">
      <img class="picture__img" src="photos/3.jpg" width="120" height="120">
      <p class="picture__info">
        <span class="picture__comments">8</span>
        <span class="picture__likes">28</span>
      </p>
    </a>
   <a href="#" class="picture">
      <img class="picture__img" src="photos/4.jpg" width="120" height="120">
      <p class="picture__info">
        <span class="picture__comments">18</span>
        <span class="picture__likes">12</span>
      </p>
    </a>
</div>


Нахожу элемент "picture" с помощью querySelectorAll и на него вешаю событие click, чтобы открывалась эта картинка в большом размере (bigpicture).

for (var i=0; i<picture.length; i++) { 
       picture[i].addEventListener('click', function() {
	bigPicture.classList.remove('hidden');
});

Файл js с обработчиком события находится перед закрывающимся тэгом
  • Вопрос задан
  • 999 просмотров
Подписаться 1 Средний 7 комментариев
Помогут разобраться в теме Все курсы
  • Skillbox
    JavaScript
    3 месяца
    Далее
  • Яндекс Практикум
    Фронтенд-разработчик расширенный
    13 месяцев
    Далее
  • Академия Eduson
    Fullstack-разработчик на JavaScript
    11 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 2
@DrLee
Если Вы используете querySelector то замените на querySelectorAll('.pictures .picture'); чтобы получить массив всех элементов за тем навесьте обработчик через цикл.
Ответ написан
xakplant
@xakplant
Автор сайта xakplant.ru
Вам нужно вешать событие на элемент в котором лежат элементы которые пришли по AJAX или вешать на них событие уже после XMLHttpRequest. Возможно вы пытаетесь повесить событие на элементы, которых нет во время исполнения скрипта addEventListener('click'......
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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