Написал функцию, которая из массива объектов собирает данные, подставляет их в шаблон и аппендит его в секцию DOM-а.
В массиве несколько объектов с данными.
Задача вывести первый шаблон, полученный из первого объекта массива сразу когда DOMContentLoaded - я просто при загрузке страницы запускаю данную функцию. А далее при клике на ссылку "Показать следующий" выводить шаблон, полученный из следующего объекта данного массива объектов, ну и так далее выводить по одному следующие шаблоны.
В шаблоне присутствует элемент objectDescriptionLink, на который подвешено событие click, в котором, например, прописано alert('Yo!');
Так вот загвоздка в том, что это событие срабатывает только на первом созданном шаблоне, который генерился при DOMContentLoaded.
На остальных шаблонах событие -
objectDescriptionLink.addEventListener('click', () => {
alert ('Yo!!!');
});
НЕ СРАБАТЫВАЕТ !!!
Проверял инспектором - ошибок в сгенерированных шаблонах нет.
Однако инспектор показывает, что в первом шаблоне на элементе objectDescriptionLink висит
event, а на остальных, сгенерированных по событию click ("Показать следующий") ивента на их элементе objectDescriptionLink нет! Как будто они в DOM не попадают, но ведь инспектор их видит и они выводятся на странице! А ивента на элементе objectDescriptionLink в них нет!
Чтобы было понятней, лайт кодинг примерно такой:
// Есть некий массив объектов
const objectsArr = [{'name: 'Вася', age: 32, discription: 'Lorem...'}, {'name: 'Петя', age: 27, discription: 'Lorem...'}, {'name: 'Федя', age: 41, discription: 'Lorem...'}];
document.addEventListener("DOMContentLoaded", () => {
const objectTemplate = () => { ... }
objectTemplate();
showAnotherOne.addEventListener('click', (event) => {
preloader.style.display = 'block';
objectTemplate();
});
const objectDescriptionLink = document.querySelector('.object-description-link');
objectDescriptionLink.addEventListener('click', (event) => {
alert ('Yo!!!');
console.log(event.target);
});
}
При первом вызове objectTemplate() событие внутри шаблона работает, при последующих нет.
В чём тут проблема?