2011-05-09 54 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