Задержка исчезновения при скрытии диалогового окна jquery - PullRequest
0 голосов
/ 30 сентября 2011

Нажатие кнопки на моем сайте открывает модальное диалоговое окно (в котором отображается слово «Сохранение») и запускает команду Ajax.Когда команда будет завершена, я хочу изменить текст в диалоговом окне (на «Сохранено!»), Подождать 500 миллисекунд, и диалоговое окно исчезнет.

Открытие и изменение содержимого диалогаКоробка не проблема.У меня проблемы с затуханием диалогового окна после задержки.Вот код для диалогового окна:

$("#save_filters_dialog").dialog({
    autoOpen:false,
    draggable:false,
    resizable:false,
    modal:true,
    height:54,
    width:70,
    hide:"fade",
    create: function(event,ui){
        $(this).siblings(".ui-dialog-titlebar").hide();
    }
});

Я также создал этот код для проверки закрытия диалогового окна (без использования команды Ajax):

$("#save_filters_dialog").click(function(){
    $(this).dialog("close");
});

Затухание и закрытие работаетхорошо.Я просто не могу найти, где поместить .delay (500), которая задерживает постепенное исчезновение при закрытии.

Ответы [ 3 ]

5 голосов
/ 13 декабря 2011

Вот как я закрываю свое диалоговое сообщение:

$("#save_filters_dialog").dialog(
{
 autoOpen:false,
 draggable:false,
 resizable:false,
 modal:true,
 height:54,
 width:70,
 hide: {effect: "fadeOut", duration: 1000}
}, setTimeout(function(){$("#save_filters_dialog").dialog("close");},2000));
1 голос
/ 30 сентября 2011

Используйте setTimeout и анонимную функцию для переноса того, что вы хотите сделать после этого:

setTimeout(function(){ console.log('Executed after 500ms'); }, 500);
1 голос
/ 30 сентября 2011

Для этого вы можете использовать функцию setTimeout ().

$("#save_filters_dialog").click(function(){
    setTimeout('closeDialog('+this+')',500);
});

function closeDialog(object){
    $(object).dialog("close");
}
...