先看下面代码:

  for (var i = 0; i < 3; i++) {
setTimeout(function () {
console.log(i)
}, 1000);
}

运行效果是

  

输出了三次3,而要想输出1,2,3,可改进代码为:

 for (var i=0;i<3;i++){
(function (i) {
setTimeout(function () {
console.log(i);
},1000);
})(i);
}

效果:

简要说一下鄙人拙见:

  第一个代码出现三次,3,的原因是,for循环时间远小于1000毫秒,所以for循环完了,计时器才运行的,获取的就是三次3.

  第二个代码:添了个闭包函数,当i每次累加的时候先执行下计时器,当等于一的时候执行计时器输出1,同理出现2,3

还有就是不要在计时器嵌套for循环

所以还有一下代码:

  var i = 0;
var id = setInterval(function () {
i++;
console.log(i);
if (i >= 12) {
clearInterval(id);
}
}, 100);

一个简单例子,个人感觉挺实用的。又不用嵌套for循环。。

补充2016-09-30 11:07:19

通过jQuery each()方法实现

 <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>each</title>
<script src="../base/jquery-3.1.0.js"></script>
<style>
* {
margin: 0;
padding: 0;
list-style: none;
} .blueBg {
background: blue;
} .whiteBg {
background: white;
}
</style>
</head>
<body>
<ul>
<li>内容一</li>
<li>内容二</li>
<li>内容三</li>
</ul>
</body>
<script>
$(function () {
var timer = null;
$("ul li").each(function (i) {
$(this).hover(function () {
var curLi = $(this);
timer = setTimeout(function () {
curLi.removeClass("whiteBg").addClass("blueBg");
console.log(i);
});
}, function () {
clearTimeout(timer);
$(this).removeClass("blueBg").addClass("whiteBg");
})
})
})
</script>
</html>

最新文章

  1. Azure Application Gateway (3) 设置URL路由
  2. PSP记录个人项目耗时情况
  3. 高流量站点NGINX与PHP-fpm配置优化(译)
  4. Linux系统下如何配置SSH?如何开启SSH
  5. 解决iphone横屏时字体变大问题或者内容大小不一样等
  6. ECHO.js 纯javascript轻量级延迟加载
  7. 字符串(后缀自动机):Codeforces Round #129 (Div. 1) E.Little Elephant and Strings
  8. android.os.NetworkOnMainThreadException 异常
  9. Digital Tutors - Creating an Action Adventure Puzzle in Unity学习笔记
  10. numpy.random 常用函数详解之简单随机数篇(Simple random data)
  11. js canvas 转动时钟实例
  12. 每天一个linux命令:df
  13. docker 安装jenkins
  14. jdbc,mybatis,hibernate各自有优缺点以及区别
  15. python接口自动化测试二十七:加密与解密MD5、base64
  16. idea+maven+springboot+mybatis+springmvc+shiro
  17. OpenCV Create Circular Mask 圆形遮罩
  18. Android自己定义之流式布局
  19. 使用MSF生成木马_入侵Windows
  20. codeforces 755F F. PolandBall and Gifts(贪心+多重背包)

热门文章

  1. CODEVS 3145 汉诺塔游戏 递归
  2. 一个数如果恰好等于它的因子之和,这个数就称为 &quot;完数 &quot;。例如6=1+2+3.编程&#160;&#160;&#160;&#160; 找出1000以内的所有完数。
  3. C#(数据类型)
  4. 多线程&amp;NSObject&amp;NSThread&amp;NSOperation&amp;GCD
  5. sql语句中的注释符号
  6. CUBRID学习笔记 32 对net的datatable的支持 cubrid教程
  7. hdu 2112 (最短路+map)
  8. 函数对象适配器之ptr_fun的使用示例
  9. 异步上传图片,光用jquery不行,得用jquery.form.js插件
  10. Android中序列化对象到XMl 和 XML反序列化为对象