隐藏淡入jquery对话框的隐藏

时间:2011-09-29 22:18:58

标签: jquery dialog hide fadeout

单击我站点上的按钮会打开一个模式对话框(显示单词“Saving”)并启动Ajax命令。命令完成后,我想更改对话框中的文本(“Saved!”),等待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 个答案:

答案 0 :(得分:5)

这就是我关闭对话框消息的方式:

$("#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 :(得分:1)

您可以使用setTimeout()函数。

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

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

答案 2 :(得分:1)

使用setTimeout和一个匿名函数来包装你想要做的事情:

setTimeout(function(){ console.log('Executed after 500ms'); }, 500);