将fancybox设置为在不同的fancybox close上打开

时间:2015-07-22 19:49:24

标签: javascript jquery fancybox

有没有办法在单独的fancybox关闭时设置fancybox打开? 我试过以下

$('a.linkEditClass').fancybox({
        href: "#editClassPanel",
        closeClick: false,
        autoDimensions: true,
        autoScale: false,
        afterClose: function() {
            $.fancybox({
                href: "#classInfoPanel"
            });
        }
    });

但这似乎没有做任何事情。这是我的其他fancybox代码供参考

$('a#linkClassInfo').fancybox({
        href: "#classInfoPanel",
        //        maxHeight: 350,
        //        maxWidth: 425,
        closeClick: false,
        autoDimensions: false,
        autoScale: false
    });

他们都以div为目标。

1 个答案:

答案 0 :(得分:2)

当您关闭fancybox时,它需要一点时间来清理并完成关闭过程,因此,在清理过程运行时打开另一个fancybox可能会触发js错误,使第二个框无法打开。

只需给它一点时间就可以了,

afterClose: function () {
    // wait for this box to close completely before opening the next one 
    setTimeout(function () {
        $.fancybox({
            href: "#classInfoPanel"
        });
    }, 300);
}

参见 JSFIDDLE