这里的遍历FOR循环后,难道不需要用(function(){})()吗?

来源:7-1 JS动画案例

wangao4321

2016-05-19 13:18

for循环当中的i最后会变成length-1,那为什么alist[i],.onmouseover能成功呢?

难道不应该是立刻调用自身吗?

(function(i) {

alist[i].onmouseover =function()(

}

})(i)

为什么不是这样写呢?



写回答 关注

1回答

  • P妞酱酱
    2016-05-19 15:52:31

    for(var i = 0;i<aList.length;i++){

            aList[i].onmouseover = function(){

                var _this = this.getElementsByTagName('img')[0];

                startMove(_this,{top:-10,opacity:0},function(){

                    _this.style.top = 20 +'px';

                    startMove(_this,{top:10,opacity:100});    

                });

            }

        }

    注意for循环的执行顺序,i=0,判断若满足i<aList.length,则执行中括号里的aList[i].onmouseover = function()等代码,然后再执行i++,再判断i<aList.length是否满足,若满足则执行中括号里的代码,依次类推,所以不会出现你所说的情况。

JS动画效果

通过本课程JS动画的学习,从简单动画开始,逐步深入各种动画框架封装

113925 学习 · 1443 问题

查看课程

相似问题