猿问

this的使用

在实现控制条的收缩的时候

for (var i = 0; i < aA.length; i++) {
       aA[i].onmouseover = function(){
         var This = this;
         clearInterval(This.time);
         This.time = setInterval(function(){
            This.style.width = This.offsetWidth + 8 + "px";
            if(This.offsetWidth >= 160)
                clearInterval(This.time);
         }, 30)

       }
      aA[i].onmouseout = function(){
        clearInterval(this.time);
        var This = this;
        this.time = setInterval(function(){
            This.style.width = This.offsetWidth - 8 + "px";
            if(This.offsetWidth <= 120)
            {
                This.style.width = '120px';
                clearInterval(This.time);
            }
                         
         }, 30)

      }

onmouseover在使用this的时候一直都是使用重定义后的This,然而在onmouseout中却是直接使用this才能实现收缩的效果,请问this的使用有什么技巧和要求吗?


舞有涵意
浏览 1478回答 2
2回答

舞有涵意

谢谢,我还想问问This不是已经指向外部的this了吗?那后面在函数内部都使用This不就可以了吗,为什么在移出鼠标触发事件的函数里面还要使用到this,而且如果使用重定义的This是实现不了效果的。
随时随地看视频慕课网APP
我要回答