问答详情
源自:5-1 JS链式动画

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

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

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


   });没有效果 

提问者:慕瓜5043631 2016-11-23 13:07

个回答

  • 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方法,所以后面的调用都失败了,所以没有效果。