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

对于this的不懂

我先是用self保存aLi[i]的this对象,self.time = setInterval()和subNav.time = setInterval()的区别?对于this不是很懂

正在回答

3 回答

对于当前标签元素来说的

0 回复 有任何疑惑可以回复我~
<script>
window.onload=function(){
    var aLi=document.getElementsByTagName('li');
 for(var i=0; i<aLi.length; i++){
  aLi[i].onmouseover=function(){
            //鼠标经过一级菜单,二级菜单动画下拉显示出来
         self = this;
            var subNav = self.getElementsByTagName("ul")[0];
            if(subNav){
                clearInterval(subNav.time);
                subNav.time = setInterval(function(){//原先写成self.time就有错误了
                    subNav.style.height = subNav.offsetHeight + 16 +"px";
                    if(subNav.offsetHeight >= 120){
                        clearInterval(subNav.time);
                    }
                },30);    
            }
  }
        //鼠标离开菜单,二级菜单动画收缩起来。  
  aLi[i].onmouseout=function(){
   self = this;
            var subNav = self.getElementsByTagName("ul")[0];
            if(subNav){
                clearInterval(subNav.time);
                subNav.time = setInterval(function(){
                    subNav.style.height = subNav.offsetHeight - 16 +"px";
                    if(subNav.offsetHeight == 0){
                        clearInterval(subNav.time);
                    }
                },30);    
            }
                   
  }  
  
 }
}
</script>


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

用self保存aLi[i]的this对象?如果没这句,你后面的写法没有区别,都是给对象属性赋值。而this在不同环境下意义不一下,具体情况具体分析,贴出你写的代码.

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

举报

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

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

进入课程

对于this的不懂

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