Проблема в том, что после настройки обработчиков кликов вы перезаписываете document.body.innerHTML
новыми элементами HTML и стираете только что настроенные элементы.
Вместо этого вставляйте новые HTML в часть документа, но не document.body
.
let videoThumbnails = document.querySelectorAll('img[src*="video-embed"]');
function toggleGalleryModal(modal) {
console.log(clicked);
document.getElementById(modal).classList.toggle("show-modal");
}
function buildGalleryModals() {
videoThumbnails.forEach(function (thumbnail, index) {
let modalID = 'vid-gallery-modal-' + index,
altText = thumbnail.alt;
thumbnail.addEventListener('click', function (event) {
console.log('thumbnail[i]: ' + index);
});
document.getElementById("output").innerHTML += '<div id="' + modalID + '" class="vid-gallery-modal"><div class="modal-content"><span class="close-button">×</span>' + altText + '</div></div>';
});
}
buildGalleryModals();
<img src="video-embed.jpg" alt="text content1">
<img src="video-embed-copy.jpg" alt="text content2">
<div id="output"></div>