Хорошо, я думаю, что решил вашу проблему.Честно говоря, вы действительно не должны представлять свой вопрос / код как этот, его действительно трудно понять и устранить неисправности (читай this ).
В любом случае ... Несколько проблем:
- Вы клонируете элементы, и поэтому все элементы будут иметь общие атрибуты (идентификатор, имя и т. Д.).Это важно, потому что у каждого из них есть свой модальный блок.
- Вы пытаетесь получить доступ к элементам (обработчикам событий добавления) до того, как такие элементы были созданы.Таким образом, ваши слушатели событий должны быть созданы, когда вы клонируете каждый элемент.
- Ваше модальное окно было инициализировано с "display: block", но вы комментируете, что вы хотите, чтобы оно было скрыто в начале.
Я изменил ваш код, поэтому каждый элемент создает новый идентификатор (также каждый модальный блок) и добавляет к нему прослушиватель событий.
Наиболее важные изменения:
clone.querySelector(".wineWrapper", "#myBtn").id+=count;
clone.querySelector(".wineWrapper", "#myBtn"+count).onclick= function(e) {
this.nextElementSibling.style.display = "block";
}
clone.querySelector(".close").onclick=function(){
this.parentNode.parentNode.style.display = "none";
}
Codepen
Примечание: Я уничтожил ваш оконный слушатель (я подумал, что это может быть причиной вашей проблемы, изначально), поэтомуесли вам это нужно, прокомментируйте ответ, и я внесу изменения.