关闭2模态并再次打开1

时间:2014-06-28 04:43:50

标签: jquery fancybox fancybox-2


在fancybox中,我打开2个插件的模态,需要关闭2和1 ...

示例:关闭2个模态并再次打开1个模态... http://jsfiddle.net/g3R75/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');
}

1 个答案:

答案 0 :(得分:0)

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

<a class="fancybox" id="button2" href="#parceiros"><div id="botao2" class="preto">PARCEIROS</div></a>

<div style="display:none">
    <div id="parceiros"> 
        <a class="fancybox" id="fancybox-button3" href="#parcas">Teste</a>
    </div>
</div>

注意我将 fancybox添加到两个主播,保留其当前ID。然后使用

将两者绑定到fancybox
$(".fancybox").fancybox({
    closeBtn: false,
    // hideOnContentClick: true, // this one is for v1.3.x
    closeClick: true,
    padding: 0,
    fitToView: false,
    helpers: {
        overlay: {
            css: {
                background: "rgba(0, 0, 0, 0.55)"
            }
        },
        buttons: {}
    }
});

现在,如果你总是想在关闭第二个模态后打开第一个模态,你可以使用click回调中的ID触发afterClose第一个链接,如:< / p>

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

注意我们必须验证我们正在关闭的那个实际上是第二个链接,然后再决定是否要在关闭后再次打开第一个链接。


重要!!!!!

当您使用我记录的内联内容的另一个fancybox中打开fancybox 错误 here

作为一种解决方法,您可以延迟click 事件以便在再次触发之前正确清理fancybox,如:

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

参见 JSFIDDLE