链式在多li里 this没有效果了

来源:5-1 JS链式动画

慕瓜5043631

2016-11-23 13:07

循环的时候lis[i].onmouseover=function () {
   sport(this,'width',400, function () {

sport( this,'height',400)},function () {


   });没有效果 

写回答 关注

2回答

  • homboy
    2016-11-30 13:00:57

    那要怎么做才有效呢,把this改成lis[i],也不行,谢谢

  • 陶吉诃德
    2016-11-23 14:21:22

    在链式调用的时候不能使用this这个关键字,你这里的this没有效果跟this的绑定的规则有关。this的绑定规则比较复杂,建议你看一下《你不知道的javascript上卷》,这本书里有解释this的绑定问题。你这里的sport方法在第一次调用时的this的确是指向li的,这个this跟随onmouseover后的匿名函数,这个匿名函数的this指向li元素。但是第二个sport方法的调用是在第一个sport方法调用里的匿名函数中,这个匿名函数的this并不指向li标签,而是指向第一个sport方法,所以后面的调用都失败了,所以没有效果。

    homboy

    那要怎么做才有效呢,把this改成lis[i],也不行,谢谢

    2016-11-30 13:01:15

    共 1 条回复 >

JS动画效果

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

113931 学习 · 1443 问题

查看课程

相似问题