setTimeout

写了这样一段代码:

//应用jquery UI的弹出层
$('#dialog p').html(msg.msg);
$('#dialog').dialog('open');
setTimeout(“$('#dialog').dialog('close');”,2000);
location.reload();

本意是弹出层在两秒后自动关闭,然后再刷新页面,但是结果发现在ie 中根本不弹出就刷新了,产生这一悲剧的是没有了解setTimeout的工作原理

 

    Javascript中的函数调用是通过堆栈实现的。

$('#dialog').dialog('open');

setTimeout(“$('#dialog').dialog('close');”,2000);
location.reload();

在执行这段代码的时候,$('#dialog').dialog('open');先入栈,如果没有setTimeout的话应该是$('#dialog').dialog('close');入栈,最后是location.reload();入栈,但是现在给$('#dialog').dialog('close');加上了setTimeout后,$('#dialog').dialog('close');就被放在一个新的栈中等待,于是就先执行了location.reload();

转载于:https://www.cnblogs.com/Sunnyj/p/3312198.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值