我使用查询模态将div附加到主体,并且按钮与模态关联。我试图使用按钮关闭模式,我的代码如下。它看起来像事件触发问题。
$('a.launch-youtube-modal').click(function(event) {
event.preventDefault();
$('body').append([
'<div class="youtube-modal">',
'<div class="youtube-modal-container"><div class="youtube-modal-video-container">',
'<iframe width="671" height="495" src="'+ $(this).attr('href') +'" frameborder="0" allowfullscreen id="youtube-video"></iframe>',
'<button class="ss-icon ss-gizmo youtube-close">close</button>',
'</div></div>',
'</div>'
].join(''));
function closeYoutubeModal() {
if (!video) return;
video.jQYT('destroy');
$('.youtube-modal').remove();
}
$('.youtube-modal .youtube-close').click(function () {
closeYoutubeModal();
});
});
答案 0 :(得分:1)
尝试以下操作:使用.on
为动态创建的元素绑定单击事件处理程序。您可以在模式点击处理程序之外保持关闭按钮点击处理程序
$('a.launch-youtube-modal').click(function(event) {
event.preventDefault();
$('body').append([
'<div class="youtube-modal">',
'<div class="youtube-modal-container"><div class="youtube-modal-video-container">',
'<iframe width="671" height="495" src="'+ $(this).attr('href') +'" frameborder="0" allowfullscreen id="youtube-video"></iframe>',
'<button class="ss-icon ss-gizmo youtube-close">close</button>',
'</div></div>',
'</div>'
].join(''));
});
function closeYoutubeModal() {
if (!video) return;
video.jQYT('destroy');
$('.youtube-modal').remove();
}
$(document).on('click','.youtube-modal .youtube-close',function () {
closeYoutubeModal();
});
答案 1 :(得分:0)
工作:
$('a.launch-youtube-modal').click(function(event) {
event.preventDefault();
$('body').append([
'<div class="youtube-modal">',
'<div class="youtube-modal-container"><div class="youtube-modal-video-container">',
'<iframe width="671" height="495" src="'+ $(this).attr('href') +'" frameborder="0" allowfullscreen id="youtube-video"></iframe>',
'<button class="ss-icon ss-gizmo youtube-close">close</button>',
'</div></div>',
'</div>'
].join(''));
});
$('body').on('click','.youtube-close', function() {
console.log("Youtube modal closed");
$('.youtube-modal').remove();
});
});