在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');
}
答案 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({
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