课程
/前端开发
/JavaScript
/JS动画效果
为什么这里startMove(Li,'width',400,function(){})这样没问题,但是一旦你用startMove(this,'width',400,function(){})浏览器都报错
2017-02-16
源自:JS动画效果 5-1
正在回答
一个对象只能是它的下一层用this,再下一层需要定义一个变量 var a=this; startMove(a,…),,,,,,,,,,,,,,,,,,,,,,,
课程中的代码是
Li.onmousevoer = function { startMove(...); }
startMove 函数实在 function 中调用的,而非直接由 Li 持有,所以在 startMove 中不能用 this,你可以试一下,在 function 中用 this 是没有问题的。
你想在 startMove 中用 this 可以改成这样:
Li.onmouseover = startMove(...);
这样就可以。
它是对类的当前实例的引用。 你的startMove()上面有没有实例, 类似于startMove(Li,'width',400,function(){})里的 “Li”
举报
通过本课程JS动画的学习,从简单动画开始,逐步深入各种动画框架封装
1 回答关于this
2 回答关于timer的问题
1 回答关于速度的问题
1 回答关于flag=true的问题
1 回答关于if-else的问题