@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 с обработчиком события находится перед закрывающимся тэгом
  • Вопрос задан
  • 959 просмотров
Пригласить эксперта
Ответы на вопрос 2
@DrLee
Если Вы используете querySelector то замените на querySelectorAll('.pictures .picture'); чтобы получить массив всех элементов за тем навесьте обработчик через цикл.
Ответ написан
xakplant
@xakplant
Автор сайта xakplant.ru
Вам нужно вешать событие на элемент в котором лежат элементы которые пришли по AJAX или вешать на них событие уже после XMLHttpRequest. Возможно вы пытаетесь повесить событие на элементы, которых нет во время исполнения скрипта addEventListener('click'......
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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