为了账号安全,请及时绑定邮箱和手机立即绑定

鼠标划过列表改变背景颜色的方法里有点疑问,为什么要用this,不可以用as[i],this不就是as[i]吗

 for (var i = 0, len = as.length; i < len; i++) {
                    as[i].onmouseover = function (i) {
                        this.style.background = '#666';
                    };
                    as[i].onmouseout = function (i) {
                        this.style.background = '#fff';
                    };


正在回答

3 回答

自己调用自己的时候只能写this。就好像说话的时候我用“我”称呼自己,而不是用自己的名字。大概是这么个意思吧,我理解的。。。

0 回复 有任何疑惑可以回复我~
#1

DAIsyKARson 提问者

嗯,我也就是this这儿搞不懂,不过按你这么理解好像又明白一点,还是谢啦!
2016-08-04 回复 有任何疑惑可以回复我~

之前看过一些解释,大概意思就是,当你的onmouseover或者onmouseout事件运行时,你的for循环已经结束,得到i的值是5.

2 回复 有任何疑惑可以回复我~

是执行顺序的关系,先循环为每个元素绑定事件,循环结束后才开始执行事件中的代码。这时,i的值已经越界,用as[i]取不到正确的值。

3 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

鼠标划过列表改变背景颜色的方法里有点疑问,为什么要用this,不可以用as[i],this不就是as[i]吗

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信