完整代码在此:http://www.imooc.com/code/1737 aLi[i].onmouseover=function(){ //为每个li标签添加鼠标移入动作
var oSubNav=this.getElementsByTagName('ul')[0]; //获取鼠标当前li标签的第一个ul标签(二级菜单)
if(oSubNav){ //如果ul标签存在的话
var This=oSubNav; // 是否多余?
clearInterval(This.time); //为什么要有?
This.time=setInterval(function(){ //定时,让二级菜单ul自增
This.style.height=This.offsetHeight+1+"px"; //获取当前二级菜单ul高度 + 1
if(This.offsetHeight>=120) //高度大于等于120时
clearInterval(This.time); //停止执行
},1)
}
}这是我的疑问,其中 var This=oSubNav; 是不是完全多余的?因为把This替换回原来的oSubNav也是可以的。第二个问题:为什么要用This.time来存放定期器?我试了下,把This.time改成随便var一个变量,就出问题了。鼠标只有停在下拉菜单中第2、4个li才有效;停在第1、3个li会触发鼠标移开事件;而且alert(This.time)是,每次鼠标移上去都是弹出2、4、6、8、10、12、没有单数,这其中必有联系,但是想不出问题是在哪里。第三个问题:为什么要在定时器之前清除定时器呢?clearInterval(This.time);请教各位大神。[抱拳]
添加回答
举报
0/150
提交
取消