我有一个带有提交按钮的页面。当点击提交按钮时,我需要显示一个包含2秒通知消息的对话框.2秒后,我需要将页面重定向到另一个位置。
setTimeout(function(){
$('#wrapper_dialog').dialog('close');
}, 2000);
//after this popup closes,I need to redirect to another page
window.location = "?load=parents/communication";
当我这样做时,会出现对话框,并且页面会异步进入下一页。
setTimeout(function(){
$('#wrapper_dialog').dialog('close');}, 2000).then(function(){
window.location = "?load=parents/communication";
});
这不起作用。
答案 0 :(得分:2)
setTimeout
没有返回承诺,它会返回一个数字;因此,它上面没有then
功能。
在调用之后,只需将location
分配关闭对话框 setTimeout
回调:
setTimeout(function(){
$('#wrapper_dialog').dialog('close');
window.location = "?load=parents/communication";
}, 2000);
或者,如果关闭对话框中有动画,请将location
作业放在对话框的close
event中:
setTimeout(function(){
$('#wrapper_dialog').dialog('close').on("dialogclose", function() {
window.location = "?load=parents/communication";
});
}, 2000);
等待更改位置直到动画完成。
答案 1 :(得分:1)
如果您要重定向到另一个页面,则无需关闭对话框,但我想如果从服务器获取响应需要时间,这是有意义的。无论如何:
setTimeout(function(){
$('#wrapper_dialog').dialog('close');
window.location = "?load=parents/communication";
},2000);
答案 2 :(得分:0)
您需要将关闭事件处理程序传递给对话框:
setTimeout(function(){
$('#wrapper_dialog').dialog('close');
$( "#wrapper_dialog" ).on( "dialogclose", function() {
window.location = "?load=parents/communication";
});
}, 2000);