Web-Project icon indicating copy to clipboard operation
Web-Project copied to clipboard

轮播图中的一个疑问

Open zzjd opened this issue 5 years ago • 1 comments

请问轮播图JS代码中 for(var i = 0; i < 4; i++){ (function (j) { li[j].addEventListener('click',function () { clearInterval(timer); index = j; moveTo(index); timer = setInterval(disPlay,2000); }) }(i)) } 应该如何理解呢?j是如何来的,以及“(i)”的意义是什么呢?

zzjd avatar Feb 15 '20 18:02 zzjd

立即执行函数,把i传给j。轮播图是给每一个li添加点击事件,点击事件是延迟执行,而for循环是立即执行。如果没有立即执行函数(function(j){//******})(i),当点击事件触发时,for循环已经结束了,每一个的index已经变成2了。通过立即执行函数及时地把i传进去。

facsli1997 avatar Jun 05 '20 14:06 facsli1997