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

链式运动多个li问题

将视频中vivian的li扩展到多个li然后使用如下代码进行运动的时候startMove中无论传递this,还是对象本身aLi[i]都会报错,这是什么原因,这个链式运动不支持多个对象么?

var aLi = document.getElementsByTagName("li");
for(var i=0;i<aLi.length;i++){
      aLi[i].timer = null;
    aLi[i].onmouseover = function(){
        startMove(aLi[i],400,'width',function(){-----这里无论传递什么都会有错误
                    startMove(aLi[i],200,'height')
        });
    }
    aLi[i].onmouseout = function(){
        startMove(this,200,'width');
    }
}
<li></li>
<li></li>
<li></li>

有人已经问过了解决方法是:

http://www.imooc.com/qadetail/139773

var aLi = document.getElementsByTagName("li");
for(var i=0;i<aLi.length;i++){
    aLi[i].timer = null; 
    aLi[i].onmouseover = function(){
        var myThis = this;
        startMove(myThis,400,'width',function(){
                    startMove(myThis,200,'height')
        });
    }
    aLi[i].onmouseout = function(){
        var myThis = this;
        startMove(myThis,200,'width');
    }
}

但是我想知道为什么会出现这种情况,这里的this分别代表什么,aLi[i]传递到startMove又是什么变量,是指针还是仅仅一个object?

正在回答

1 回答

你可以在控制台输出测试下this指的是什么,或者你把所有代码粘贴过来  我看看

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

举报

0/150
提交
取消

链式运动多个li问题

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