@Andrei258

Не работают события после innerHTML?

Здравствуйте, помогите пожалуйста. День уже не могу исправить.
Погуглил, посмотрел всякие форумы не где не могу найти ответ, точнее есть ответы но не помогают.

У меня есть такой код
document.getElementById( "homey_gallery_container" ).insertAdjacentHTML('beforeend', '<div class="col-sm-2 col-xs-4 listing-thumb">' +
'<figure class="upload-gallery-thumb">' +
'<img src="' + URL.createObjectURL(file) +
'" alt="thumb">' + '</figure>' + '<div class="upload-gallery-thumb-buttons">' +
'<a class="icon-featured" data-thumb="' + URL.createObjectURL(file) +
'" data-listing-id="' + 0 + '"  data-attachment-id=""><i class="fa fa-star-o"></i></a>' +
'<button class="icon-delete" data-listing-id="' + 0 + '"  data-attachment-id=""><i class="fa fa-trash-o"></i></button>' + '<input type="hidden" class="listing-image-id" name="listing_image_ids[]" value=""/>' +
'</div>'+'<span style="display: none;" class="icon icon-loader"><i class="fa fa-spinner fa-spin"></i></span>' +'</div>');


После вставки должен сработывать событие при клике на "icon-featured".
Если вставить этот код вручную то все работает а если вставить через innerHtml или через insertAdjacentHTML то событие не будет работать. Пробовал много вариантов, не работает, не знаю уже, что можно сделать
  • Вопрос задан
  • 366 просмотров
Пригласить эксперта
Ответы на вопрос 2
ProgrammerForever
@ProgrammerForever
Учитель, автоэлектрик, программист, музыкант
Попробуйте сделать это через:
createElement()
node.appendChild()
Ответ написан
Если вы подписываетесь на событие на самом елементе a.icon-featured то оно и не будет работать.
Вариант 1) Вешайте событие на homey_gallery_container и проверяйте event.target
Вариант2) Вешайте событие через пропсу в HTML тогда не прийдется менеджить подписку и отписку.
Но само по себе использование insertAdjacentHTML вызывает миллион вопросов.
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы
23 нояб. 2024, в 22:38
2500 руб./за проект
23 нояб. 2024, в 22:03
3000 руб./за проект
23 нояб. 2024, в 21:53
30000 руб./за проект