Jquery 关闭2模式,然后再次打开1

Jquery 关闭2模式,然后再次打开1,jquery,fancybox,fancybox-2,Jquery,Fancybox,Fancybox 2,在fancybox中,我打开了2个插件模块,需要关闭2和1 示例:关闭2个模态,然后再次打开1个模态。。。 我用这个但不起作用: afterClose: function() { $("a#button2").fancybox({ 'closeBtn' : false, 'hideOnContentClick': true, 'padding' : 0, 'fitToView' : false, 'helpers' : { overlay :


在fancybox中,我打开了2个插件模块,需要关闭2和1

示例:关闭2个模态,然后再次打开1个模态。。。

我用这个但不起作用:

afterClose: function() {

    $("a#button2").fancybox({
    'closeBtn' : false,
    'hideOnContentClick': true,
    'padding' : 0,
    'fitToView' : false,
    'helpers' : {  overlay : { css : { 'background' : 'rgba(0, 0, 0, 0.55)'  } }, buttons   : {} }
    }).trigger('click');
}

首先,您可能只需要为两个模式框添加一个脚本,方法是为两个链接(fancyBox(隐藏内容)外部和内部)添加一个公共选择器,以便:

现在,如果您总是想在关闭第二个模式后打开第一个模式,您可以使用
afterClose
回调中的
ID
触发对第一个链接的
单击,如:

afterClose: function () {
    if (this.element.attr("id") == "fancybox-button3") {
        $("#button2").click();
    }
}
注意在决定是否在关闭后再次打开第一个链接之前,我们必须验证正在关闭的链接是否是第二个链接


重要的 当您从另一个fancybox中打开fancybox,其中包含我记录的内联内容时,会出现一个bug

作为一种解决方法,您可以延迟
单击
事件,以便在再次启动fancybox之前正确清理它,如下所示:

afterClose: function () {
    if (this.element.attr("id") == "fancybox-button3") {
        setTimeout(function () {
            $("#button2").click();
        }, 200);
    }
}
请参见

afterClose: function () {
    if (this.element.attr("id") == "fancybox-button3") {
        $("#button2").click();
    }
}
afterClose: function () {
    if (this.element.attr("id") == "fancybox-button3") {
        setTimeout(function () {
            $("#button2").click();
        }, 200);
    }
}