Fancybox - 关闭弹出窗口时打开另一个弹出窗口

时间:2013-08-26 07:51:30

标签: jquery fancybox

这是我的js代码

        jQuery('.fancybox').fancybox({


            beforeLoad: function(current, previous) {

                document.getElementById("petition-form").reset();

                jQuery('#petition-form').show();

                jQuery('.petition-message').html("");

                jQuery('.petition-message').hide();

            },


            afterClose: function() {

                jQuery.fancybox.open('#cancelform');


            }


        }

        );

关闭第一个弹出窗口时打开第二个弹出窗口,但第二个弹出窗口也会关闭。我正在使用fancybox 2+。我也得到一个js错误TypeError:this.overlay为null。

2 个答案:

答案 0 :(得分:2)

升级到最新版本后,我遇到了同样的问题。快速修复但不是解决方案是在'afterclose'内添加一个短暂的延迟。这似乎可以及时释放叠加层。

'afterClose':function () {
    setTimeout(func, 50);
    function func() {
        $.fancybox();
    }
},

答案 1 :(得分:0)

尝试改变:

...
afterClose: function() {
    jQuery.fancybox.open('#cancelform');
}
...

afterClose: function() {
    jQuery('#cancelForm').fancybox().trigger('click');
}

演示:: jsFiddle

更新了代码::

$(document).ready(function () {    
    $(".fancybox").fancybox({
        helpers: {
            overlay: null        
        },
        'afterClose': function() { 
            $("#cancelForm").fancybox().trigger("click");
        }
    });
});

更新了Fiddle