单击我站点上的按钮会打开一个模式对话框(显示单词“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)放在哪里延迟淡出淡出的消息。
答案 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);