2011-05-09 83 views
2

我使用對話框作爲各種AJAX函數的加載覆蓋,但是當對話框顯示或隱藏連接到它的動畫時,直到AJAX函數爲止,對話框纔會打開/關閉完成。jQuery UI動畫對話框顯示/隱藏問題

這裏是我使用的(簡化)代碼:

$("#loading_dialog").dialog(
{ 
    show: "fade", 
    hide: "fade", 
    closeOnEscape: false, 
    stack: false, 
    draggable: false, 
    height: 421, 
    width: 500, 
    modal: false, 
    position: {my: 'right', at: 'left', of: '#side_div', offset: "2 0"}, 
    resizable: false, 
    dialogClass: 'loading', 
    zIndex: 900, 
    autoFocus: false 
}); 

$("#start_ajax").click(function() 
{ 
    $("#loading_dialog").dialog("open"); 

    $.when(ajaxFunction()) 
    .then(function() 
    { 
    //do stuff 
    $("#loading_dialog").dialog("close"); 
    }) 
    .fail(function() 
    { 
    //handle error 
    }); 
}); 

#loading_dialog不開,直到ajaxFunction()通話已結束,但是當我註釋掉在對話框初始化顯示選項將立即。當我嘗試關閉對話框時也會發生同樣的情況。

只是我嗎?

回答

0
​​

是你的問題。不要等待ajax完成,利用ajax回調函數。 AJAX的整個想法並不是阻礙,你明確的做法。

棒這樣的:

$("#loading_dialog").dialog("close"); 

到Ajax回調。

+0

這樣做,歡呼:) – tim 2011-05-09 15:52:03