我在关闭后使用fancybox API时出现问题。
当人们点击此功能时,我会打开该功能:
<a class="fancybox fancybox.iframe btn" href="myurl.php"></a>
这背后的javascript是:
$('.fancybox.iframe')
.fancybox({
arrows: false,
padding: 0,
overlay: {
locked: false
},
beforeClose: function () {
location.reload();
}
});
当我关闭页面时,它永远不会重新加载页面。有人能帮助我吗?谢谢!
答案 0 :(得分:4)
进一步澄清以避免进一步混淆:
基于您的HTML
<a class="fancybox fancybox.iframe btn" href="myurl.php"></a>
使用afterClose
回调(而不是event
)代替beforeClose
。如需进一步参考,请检查Tips & Tricks =&gt; 11号
class fancybox
用于将选择器绑定到fancybox,因此您的初始化代码应如下所示
jQuery(document).ready(function ($) {
$('.fancybox').fancybox({
arrows: false,
padding: 0,
helpers: {
overlay: {
locked: false
}
},
afterClose: function () {
location.reload();
}
});
}); // ready
(有效)fancybox.iframe
类告诉fancybox它应该处理的内容类型,但是你不用它来将选择器绑定到fancybox。
参见 JSFIDDLE
注意:这适用于fancybox v2.x
答案 1 :(得分:1)
你应该使用
$('.fancybox.iframe').fancybox({
arrows: false,
padding: 0,
helpers: { overlay : {closeClick: false} },
beforeClose: function () {
parent.location.reload(true);
}
});
(请注意,fancybox的版本1和2之间的语法不同。以上是针对fancybox2的)
答案 2 :(得分:0)
尝试使用onClose
事件:
$('.fancybox.iframe')
.fancybox({
arrows : false,
padding: 0,
overlay: {
locked: false
},
onClosed: function() {
location.reload();
}
});
根据API,没有beforeClose
事件,但有onClose