5秒后显示JQuery对话框并自动关闭

时间:2012-02-28 10:40:33

标签: jquery-ui jquery jquery-plugins

如果响应时间超过5秒,如何打开JQuery JDialog窗口。

以下是我的代码

$("#Dialog").dialog(
       {
           autoOpen: false,
           modal: true,
           height: 175,
           position: 'center',
           bgiframe: true,
           display: 'visible',
           width: 400
       });

如果响应时间(AJAX)超过5秒,我想显示上面的对话框,一旦得到响应(AJAX),我想自动关闭。

任何帮助都会有所帮助。

由于

1 个答案:

答案 0 :(得分:3)

您可以使用setTimeout()启动一个计时器,该计时器将在5秒后打开您的对话框。此方法返回对其创建的计时器的引用。在“beforeSend”回调中执行此操作,该回调在请求开始之前执行。

在完整的回调(或成功+错误回调)中,使用clearTimeout()清除计时器并关闭对话框。

var timer;

$.ajax({
    ...
    beforeSend: function() {
        timer = setTimeout(function() {
            $("#Dialog").dialog('open');
        }, 5000);
    },
    complete: function() {
        clearTimeout(timer);
        $("#Dialog").dialog('close');
    }
});