js在for循环中绑定事件

本来想着直接通过js代码来点击事件时让div的宽度变化然后写了如下的代码

但是无论如何点击都一下子显示完全部的宽度;

然后网上通过很久查找网上的资料改成如下:

就能够显示出我想要的效果了;

纵观这样的代码现象,才明白是因为闭包的问题,上图中的变量i直接引用了父函数中的i,所以在循环结束后才将最终的值传给了

子函数,而下图则只是引用了父函数中的i的值,

posted @ 2017-03-20 19:54  夜空幻狼  阅读(3100)  评论(0编辑  收藏  举报