JS for循环时setTimeout 的问题

在jsfor循环里setTimeout为什么不是和循环同步的?比如:for(vari=1;i<10;i++){setTimeout("alert('i="+i+"')",... 在js for循环里 setTimeout为什么不是和循环同步的? 比如:
for(var i=1;i<10;i++)
{
setTimeout("alert('i="+i+"')",100);
alert(i)
}
会先执行下面那段 等下面输出9次了 才输出上面那个alert里的
就算我把延时设置成0也是先执行下面那段
谁能解决不?
展开
 我来答
gjwzjl
2009-04-23 · TA获得超过340个赞
知道小有建树答主
回答量:234
采纳率:0%
帮助的人:253万
展开全部
for语句不会因为有setTimeout的存在而停止,他会跳过setTimeout,setTimeout设定的是100毫秒的延迟,而for语句执行根本用不了那么长时间所以会先弹出九个alert,然后才setTimeout中的alert
可以使用递归来解决这个问题
var i=0;
function al()
{
i++;
if(i<10) setTimeout(function(){alert("i="+i);al()},2000);
}
al();
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式