Javascript Fancybox afterClose事件不工作

Javascript Fancybox afterClose事件不工作,javascript,jquery,fancybox,fancybox-2,Javascript,Jquery,Fancybox,Fancybox 2,我在关闭后使用fancybox API时遇到问题 当人们点击此按钮时,我打开此功能: <a class="fancybox fancybox.iframe btn" href="myurl.php"></a> 当我关闭页面时,它不会重新加载页面。有人能帮我吗?谢谢大家! 尝试使用onClose事件: $('.fancybox.iframe') .fancybox({ arrows : false, padding: 0, overlay: {

我在关闭后使用fancybox API时遇到问题

当人们点击此按钮时,我打开此功能:

<a class="fancybox fancybox.iframe btn" href="myurl.php"></a>

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

尝试使用
onClose
事件:

$('.fancybox.iframe')
.fancybox({
    arrows : false,
    padding: 0,
    overlay: {
        locked: false
    },
    onClosed: function() {
        location.reload(); 
    }

});
根据API,在关闭之前不存在
事件,但存在
onClose

您应该使用

$('.fancybox.iframe').fancybox({
    arrows: false,
    padding: 0,
    helpers: { overlay : {closeClick: false} },
    beforeClose: function () {
        parent.location.reload(true);
    }
});

(请注意,fancybox版本1和版本2的语法不同。以上是针对fancybox2的)

为避免进一步混淆,请进行一些澄清:

基于你的html

<a class="fancybox fancybox.iframe btn" href="myurl.php"></a>
  • (valid)
    fancybox.iframe
    类告诉fancybox它应该处理的内容类型,但您不使用它将选择器绑定到fancybox

  • 请参见


    注意:这是针对fancybox v2.x的。

    HTML类中有一个错误,句点(.)应替换为空格():@AdrianForsius:不是错误,
    fancybox.iframe
    是fancybox v2.x的有效特殊类。OP似乎正在使用且
    beforeClose
    是有效的API选项……总之,
    onClose
    也不是fancybox v1.3.x的有效API选项。它应该是
    onClosed
    您使用的
    parent.location.reload(true)如果(且仅如果)希望从iframe重新加载父对象,但在OP的情况下,fancybox正在主页中打开,因此不需要它。我猜afterClose:function(){location.reload();}将执行与之前相同的操作:function(){parent.location.reload()}。这两个都能工作谢谢你,这对我很有帮助,也谢谢你添加了它。iframe不再需要了,虽然它也有:)嘿,JFK,它工作正常,但自从我删除了jquery代码中的.fancybox.iframe之后,布局已经完全改变了。如果我在jquery中添加.fancybox.iframe,那么在关闭fancybox后页面不会重新加载。你有小费吗?ThanksSmall note,在中找不到overlay属性spec@Thempower:我从未说过您不需要
    fancybox.iframe
    类;您需要它来告诉fancybox使用iframe,但您没有使用它将选择器绑定到fancybox,这有意义吗?。请勾选我答案中的数字3。另外,您可能需要为iframe设置
    preload:false
    ,检查是否有进一步的参考。@Kenneth:它确实存在,但它是
    helpers
    API选项的子集。我用正确的代码和JSFIDLE引用更新了我的答案。谢谢
    <a class="fancybox fancybox.iframe btn" href="myurl.php"></a>
    
    jQuery(document).ready(function ($) {
        $('.fancybox').fancybox({
            arrows: false,
            padding: 0,
            helpers: {
                overlay: {
                    locked: false
                }
            },
            afterClose: function () {
                location.reload();
            }
        });
    }); // ready