[TimLinux] JavaScript 中循环执行和定时执行

Posted TimLinux

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[TimLinux] JavaScript 中循环执行和定时执行相关的知识,希望对你有一定的参考价值。

1. 两对函数

// 循环执行
// 在每个毫秒数之后,调用函数
var timeid = window.setInterval(函数名, 毫秒数);
window.clearInterval(timeid );

// 定时执行:1秒=== 1000毫秒
// 在毫秒数之后,调用函数
var timeid = window.setTimeout(函数名, 毫秒数);
window.clearTimtout(timeid);

2. 闭包与循环调用

今天在开发过程中,想对一个验证失败的循环列表中的元素进行背景色标红,然后再2秒之后,取消标红功能,只保留边框为红色。使用的时候遇到一个提示:“mutable variable accessible from closure”,大概意思就是在setTimeout参数1:函数名对应的函数体中,使用了循环变量,这个变量是可变值,也就是说,在时间到的时候,我们调用函数,就会发现所有循环体针对的都是最后一个循环变量进行的操作。示例代码:

for (var i=0; i < fails.length; i++) {
    setTimeout(function () { console.log(fails[i]; }, 2000);
}

// 出错位置:fails[i],因为i是可变值,在循环完成后,setTimeout含没有调用,
// 当开始调用的时候,i的值已经为比如:3, 这个时候4个setTimout函数操作的
// 就是同一个fails[3]元素了。

3. 如果解决

搜索了一圈,还没有找到解决办法,先记录在这里,等找到解决办法了,再回来完善吧。



以上是关于[TimLinux] JavaScript 中循环执行和定时执行的主要内容,如果未能解决你的问题,请参考以下文章

[TimLinux] JavaScript 代码控制滚动条移动到顶部/底部

[TimLinux] JavaScript 元素动态显示

[TimLinux] JavaScript 获取元素节点的5种方法

[TimLinux] JavaScript position为fixed时支持水平滚动条

[TimLinux] JavaScript 模态框可拖动功能实现——jQuery版

[TimLinux] JavaScript AJAX接收到的数据转换为JSON格式