Показать JQuery JDialog через 5 секунд и автоматически закрыть - PullRequest
1 голос
/ 28 февраля 2012

Как открыть окно JQuery JDialog, если ответ занимает более 5 секунд.

Ниже приведен мой код

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

Я хочу показать вышеприведенное диалоговое окно, если время ответа (AJAX)занимает больше 5 секунд и автоматически закрывается, как только я получаю ответ (AJAX).

Любая помощь будет полезна.

Спасибо

1 Ответ

3 голосов
/ 28 февраля 2012

Вы можете использовать setTimeout () , чтобы запустить таймер, который откроет ваш диалог через 5 секунд. Этот метод возвращает ссылку на таймер, который он создает. Сделайте это в обратном вызове beforeSend, который выполняется перед началом запроса.

При полном обратном вызове (или обратном вызове «успех + ошибка») очистите таймер с помощью clearTimeout () и закройте диалоговое окно.

var timer;

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