我正在使用Lightbox,用户可以在其中观看视频
问题如果我通过点击容器外部关闭它我将得到错误“无法读取属性'stopvideo'未定义”但如果我用按钮关闭它,它运作良好。
$(function(){ var appendthis = ("look over jsfiddle"); $('a[data-modal-id]').click(function(e) { $(window).resize(); e.preventDefault(); $("body").append(appendthis); $(".modal-overlay").fadeTo(500, 0.7); var modalBox = $(this).attr('data-modal-id'); $('#'+modalBox).fadeIn($(this).data()); $(".js-modal-close-vid, .modal-overlay").click(function() { var player = $(this).closest('.modal-box').data('player'); player.stopVideo(); $(".modal-box, .modal-overlay").fadeOut(500, function() { $(".modal-overlay").remove(); }); }); });
评论中的JsFiddle。
答案 0 :(得分:0)
$(".js-modal-close, .modal-overlay").click(function() {
var player = $('.modal-box').data('player');
player.stopVideo();
player.seekTo(0);
$(".modal-box, .modal-overlay").fadeOut(500, function() {
$(".modal-overlay").remove();
});
});
此更改正在将$(this).closest('.modal-box').data('player');
更改为$('.modal-box').data('player')
并且有效。我认为这里的问题是错误地使用closest
方法并且选择器不符合您的预期。