完整代碼在此:http://www.xianlaiwan.cn/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);請教各位大神。[抱拳]
關于下拉菜單的問題?
慕仙森
2018-10-18 11:19:12