我有一個Fancybox有兩個按鈕:合併和取消。取消關閉fancybox併合併發布表單並等待頁面重新加載。它需要幾秒鐘的時間重新加載頁面,所以在用戶按下合併後,我禁用了取消按鈕,並且我想將選項modal
設置爲true
,但我似乎無法找到設置選項的方法已經打開fancybox。有沒有人有任何建議如何做到這一點?打開fancybox模式
遊樂場:當函數運行http://jsfiddle.net/vCtVq/
我有一個Fancybox有兩個按鈕:合併和取消。取消關閉fancybox併合併發布表單並等待頁面重新加載。它需要幾秒鐘的時間重新加載頁面,所以在用戶按下合併後,我禁用了取消按鈕,並且我想將選項modal
設置爲true
,但我似乎無法找到設置選項的方法已經打開fancybox。有沒有人有任何建議如何做到這一點?打開fancybox模式
遊樂場:當函數運行http://jsfiddle.net/vCtVq/
沒有簡單的選項來切換「模態」狀態,fancyBox是模態或不模式。但我可以想到兩個解決方案。
1)隱藏在覆蓋關閉按鈕和取消綁定click事件 -
$('#merge').click(function() {
$('#cancel').attr("disabled", "disabled");
$('.fancybox-item').hide();
$('.fancybox-overlay').unbind();
console.log('submit');
});
演示 - http://jsfiddle.net/am8d3/
2)創建一個全局變量,並使用 「beforeClose」 回調檢查。您可以通過返回「虛假的」取消閉幕 -
var busy = false;
$(".o").fancybox({
//modal: true
beforeClose: function() {
if (busy) {
return false;
}
}
});
的fancybox的initilized一次,並且不能使用不同的選項來reinitilized我敢肯定。你可以做的是創建一個標誌,並使用一些更傳統的JavaScript來控制關閉行爲。將模態設置爲true,然後使用body click事件處理關閉。然後,設置一個真/假標誌,確定是否單擊合併,是否允許窗口關閉主體點擊。類似這樣的:
$('body').click(function(e) {
if (allowClose == true) {
$.fancybox.close();
}
})
我已經更新了你的這個解決方案的小提琴here。
謝謝,我喜歡的第一個選項,它模擬有它完美莫代爾:) – olofom
感謝的行爲,在我的情況下,它是$( '#的fancybox疊加')取消綁定(); –