我有一个带有两个按钮的Fancybox:合并和取消。取消关闭fancybox,Merge发布表单并等待页面重新加载。页面重新加载需要几秒钟,因此在用户按下合并后我禁用了取消按钮,我想将选项modal
设置为true
,但我似乎无法看到找到一种方法在已打开的fancybox上设置选项。有没有人对如何做到这一点有任何建议?
答案 0 :(得分:3)
没有简单的选项来切换“模态”状态,fancyBox是模态还是非模态。但我可以想到两个解决方案。
1)在叠加层上隐藏关闭按钮并取消绑定点击事件 -
$('#merge').click(function() {
$('#cancel').attr("disabled", "disabled");
$('.fancybox-item').hide();
$('.fancybox-overlay').unbind();
console.log('submit');
});
演示 - http://jsfiddle.net/am8d3/
2)创建一个全局变量,并使用“beforeClose”回调进行检查。您可以通过返回“false” -
取消关闭var busy = false;
$(".o").fancybox({
//modal: true
beforeClose: function() {
if (busy) {
return false;
}
}
});
答案 1 :(得分:0)
Fancybox在函数运行时启动一次,不能用不同的选项重新启动我很确定。你可以做的是创建一个标志,并使用一些更传统的JavaScript来控制关闭行为。从get go开始将modal设置为true,而是通过body click事件处理close。然后,设置一个true / false标志,确定是否单击了合并,是否允许窗口在单击时关闭。像这样:
$('body').click(function(e) {
if (allowClose == true) {
$.fancybox.close();
}
})
我已经更新了你的解决方案here。