Я создаю галерею плейлистов YouTube, я пытаюсь открыть миниатюры, чтобы открыть лайтбокс, который затем отображает видеофрагмент iframe.jQuery не распознает динамические классы html/id
Лайтбокс не работает с моим динамическим html, кажется, что он не распознает классы.
Я довольно новичок в jQuery, поэтому любая помощь или подсказки будут оценены!
Код Lightbox
$(document).ready(function(){
$("a#show-panel").click(function(){
$("#lightbox, #lightbox-panel").fadeIn(300);
})
$("a#close-panel").click(function(){
$("#lightbox, #lightbox-panel").fadeOut(300);
})
})
Вызов в данных YouTube для создания динамических HTML
function getVideoHtml(video)
{
title = video.title.$t;
url = video.content.src;
views = video.yt$statistics.viewCount;
dateCreated = video.published.$t;
videoId = video.media$group.yt$videoid.$t;
//console.log(videoId);
videoThumb = video.media$group.media$thumbnail.url;
//console.log(videoThumb);
videoHtml = "<div> \
<a id=\"show-panel\" href=\"#\"> \
<img src=\"http://img.youtube.com/vi/"+videoId+"/mqdefault.jpg\"/> </a> \
<div id=\"lightbox-panel\"><h2>"+title+"</h2> <iframe id=\"ytplayer"+videoId+"\" type=\"text/html\" width=\"300\" height=\"250\" \
src=\"http://www.youtube.com/embed/"+videoId+"?autoplay=0&origin=http://example.com\" \
frameborder=\"0\"/> \
<p align=\"center\"><a id=\"close-panel\" href=\"#\">Close this window</a></p> \
</div> \
</div>\
<div class=\"lightbox\"></div> \
<p>"+title+"</p> \
<p>views:"+views+"</p> \
<p>date created: "+dateCreated+"</p> \
</div>";
return videoHtml;
}
jQuery будет прикреплять обработчики событий только к элементам, которые существуют в момент присоединения слушателя. Вам нужно прикрепить слушателя к родительскому элементу, который является общим для всех из них, так что событие click может пузыриться –
Спасибо за подсказку @CrayonViolent;) –