如何在关闭时刷新Fancybox内容?

时间:2013-05-08 15:49:15

标签: jquery fancybox fancybox-2

有没有办法在关闭时重置fancybox实例或刷新它的内容? 请注意,它从同一页面上的div中获取内容。

我想让它显示像重新打开fancybox时首次加载到dom中的内容。

我想这更像是一个javascript / jQuery的东西,而不是Fancybox的东西,对吗?

$.fancybox.open({
    href: '#popup',
    padding: 0,
    autoWidth: true,
    arrows: false,
    closeBtn: false,
    scrollOutside: true,
    helpers: {
        overlay: {
            css: {
                'background': 'rgba(0, 0, 0, 0.5)'
            },
            locked: false
        }
    },
    afterClose: function() {
        // Reset or refresh here
    }
});

1 个答案:

答案 0 :(得分:1)

这取决于您对目标div所做的更改,但是如果不重新加载页面,或者对页面执行时髦的Ajax调用并获取div那里的内容。

解决这个问题的最简单方法是将该div的标记存储在变量中(使用jQuery的html(),并使用afterClose()回调中的变量“重置”div。 / p>

<强> JS

var content = $('#popup').html(); // store content on documentReady()

$.fancybox.open({
    href: '#popup',
    padding: 0,
    autoWidth: true,
    arrows: false,
    closeBtn: false,
    scrollOutside: true,
    helpers: {
        overlay: {
            css: {
                'background': 'rgba(0, 0, 0, 0.5)'
            },
            locked: false
        }
    },
    afterClose: function(){
        $('#popup').html(content);
    }
});    

最好使用fancybox的beforeLoad回调与此相关,为您的所有内容执行此操作,但由于您似乎正在加载单个div,这应该可行。