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

This为什么不能换成其他?

window.onload=function()

 {

    var aLi=document.getElementsByTagName('li');

    for(var i=0; i<aLi.length; i++)

    {

          aLi[i].onmouseover=function()

             {

                 var oSubNav=this.getElementsByTagName('ul')[0];

                 var This=oSubNav;

                clearInterval(This.time);

                This.time=setInterval(function()

                  {

                    This.style.height=This.offsetHeight+16+"px";

                    if(This.offsetHeight>=120)

                    {clearInterval(This.time);}

                  } , 30)

       }

</script>

上面的代码中为什么 必须设定 var This=oSubNav?

 我设置var Thi=oSubNav; 下面的动画函数里也改成Thi,结果不执行。我不设置var This=oSubNav; 直接使用oSubNav,结果也不行。

why?


正在回答

4 回答

this代表当前a标签

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

艾零 提问者

非常感谢!
2017-08-09 回复 有任何疑惑可以回复我~
                 var oSubNav=this.getElementsByTagName('ul')[0];
                 var Thi=oSubNav;
                clearInterval(Thi.time);
                Thi.time=setInterval(function(){
                    Thi.style.height=Thi.offsetHeight+16+"px";
                    if(Thi.offsetHeight>=120)
                    {clearInterval(Thi.time);}
                  } , 30)

奇怪了,我把你这段aLi[i].onmouseover=function()函数里面的代码复制到自己的作业里,然后改成了这样。和你的代码是同样的效果啊。

猜测你是This改Thi的时候没改完全,导致程序断了,就没生效吧。我试的时候就是clearInterval里面的This没改成Thi也停止运行了。全部一致之后,是同样效果的

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

var This=oSubNav中的This是可以换的,他只是一个变量名,而this是之最近操作的对象

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

你猜啊

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

举报

0/150
提交
取消
导航条菜单的制作
  • 参与学习       123899    人
  • 解答问题       813    个

水平、垂直、圆角导航条菜单,让您的技术探索之路更高效

进入课程

This为什么不能换成其他?

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