有没有办法在关闭时重置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
}
});
答案 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
,这应该可行。