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

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

Войти через центр авторизации
Похожие вопросы
05 нояб. 2024, в 19:14
100000 руб./за проект
05 нояб. 2024, в 19:07
12000 руб./за проект
05 нояб. 2024, в 17:38
150000 руб./за проект