jquery – 通过Ajax加载下一个图像并添加到Fancybox

前端之家收集整理的这篇文章主要介绍了jquery – 通过Ajax加载下一个图像并添加到Fancybox前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我的问题是我有一个大型图库,不应该在第一页加载时完全加载.
所以我加载了50张图片中的10张并添加fancybox.
用户单击下一个按钮时,应通过Ajax加载第11个图像并附加到图库容器.

问题是fancybox停在第10个图像,因为它不知道动态加载的图像.

如何将动态加载的图像添加fancybox2?

目前我有这个:

function loadfancybox() {
    $('a.lightBox').fancybox({
        helpers: {
            overlay: {
                css: {
                    'background': 'rgba(0,0.8)'
                }
            }
        },beforeLoad: function() {
            this.title = $(this.element).data('title');
            ajaxGetNextImages();
            loadfancybox();
        },loop: false
    });
}
loadfancybox();

ajaxGetNextImages()获取下一张图片:)

之后我调用loadfancybox(),以便所有新图像都属于图库.但是直到我重新打开fancybox包括它们……

解决方法

好的,只是为了好玩,根据 imran-a在这个 GitHub问题上的评论,这是你的黑客解决方案:
$(".fancybox").fancybox({
    loop: false,beforeLoad: function () {
        if ((this.index == this.group.length - 1) && !done) {
            ajaxGetNextImages();
            done = true;
            this.group.push(
               { href: "images/04.jpg",type: "image",title: "Picture 04",isDom: false },{ href: "images/05.jpg",title: "Picture 05",{ href: "images/06.jpg",title: "Picture 06",isDom: false }
            ); // push 
        } // if
    } // beforeLoad
}); // fancybox

注意除了调用ajaxGetNextImages()(将新图像放在文档流中)之外,我必须在fancybox的组中推送(手动)新图像.

不是一个完美的解决方案,但它有效,见DEMO HERE;您将在页面加载时看到三个缩略图.打开fancybox并导航到最后一项后,将在文档中添加三个缩略图,并将3个相应的图像添加fancybox库中.

另请注意,您必须初始化var done = false;在你的剧本开始.

顺便说一下,忘记函数loadfancybox(),不需要.

猜你在找的jQuery相关文章