Fancybox afterClose事件无效

时间:2014-09-17 06:52:34

标签: javascript jquery fancybox fancybox-2

我在关闭后使用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();
    }
});

当我关闭页面时,它永远不会重新加载页面。有人能帮助我吗?谢谢!

3 个答案:

答案 0 :(得分:4)

进一步澄清以避免进一步混淆:

基于您的HTML

<a class="fancybox fancybox.iframe btn" href="myurl.php"></a>
  1. 使用afterClose回调(而不是event)代替beforeClose。如需进一步参考,请检查Tips & Tricks =&gt; 11号

  2. class fancybox用于将选择器绑定到fancybox,因此您的初始化代码应如下所示

    jQuery(document).ready(function ($) {
        $('.fancybox').fancybox({
            arrows: false,
            padding: 0,
            helpers: {
                overlay: {
                    locked: false
                }
            },
            afterClose: function () {
                location.reload();
            }
        });
    }); // ready
    
  3. (有效)fancybox.iframe 告诉fancybox它应该处理的内容类型,但是你不用它来将选择器绑定到fancybox。

  4. 参见 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

http://fancybox.net/api