【发布时间】:2015-03-14 02:57:41
【问题描述】:
我有一个带有一些按钮的花式框,当您单击一个按钮时,它会打开一个新的花式框,当您关闭该框时,它会返回原始框。然而,当它恢复到原来的时候,覆盖消失了! 如何防止这种情况发生? 我使用的是 fancybox 1.3.4
这是一个演示问题的示例:
HTML
<div style=display:none>
<div id=modal1>
Modal 1<br />
<input type=button href=#modal2 value=modal2 />
</div>
<div id=modal2>
modal 2
</div>
</div>
<input type=button href=#modal1 value=modal1 />
JS
$(document).ready(function () {
$('input[href=#modal1]').fancybox();
$('input[href=#modal2]').fancybox({
onClosed:function() {
setTimeout(function() {
$.fancybox({href:'#modal1'});
},0);
}
});
});
小提琴:http://jsfiddle.net/e27mgovv/ (点击modal1按钮,然后modal2按钮,然后关闭modal2)
【问题讨论】:
-
第二个模态显然破坏了覆盖,但是您需要的行为是不寻常的-从模态内部触发模态,我宁愿考虑更新模态本身的内容
-
嗯,我想我可以通过将所有“子模态”推入单个模态并使用 jquery 切换 div 来更新内容,这似乎可以工作
-
我会这样做 - 我见过的大多数模态插件,在创建之前检查覆盖的存在 - 这样你就不会得到多个。同样,它们只是在关闭一个模式时移除覆盖。
-
嗯,这并不完全理想,但我只是创建了自己的基本叠加层,并通过 start 和 close 方法控制它:jsfiddle.net/e27mgovv/38
-
@Luca 我的关闭重新打开计划不起作用,它从未重新打开主模式。我使用了您更新内容的最初建议,但将所有子模式放在一个花式框中,并根据需要切换每个模式的显示。谢谢!