<body>
<p class="nav">
<ul class="nav_level_1">
<li><a href="#">首页</a></li>
<li><a href="#">课程大厅</a>
<ul class="nav_level_2">
<li><p class="corn"></p></li>
<li><a href="#">JavaScript</a></li>
<li><a href="#">JQuery</a></li>
</ul>
</li>
<li><a href="#">学习中心</a></li>
<li><a href="#">经典案例</a></li>
<li><a href="#">关于我们</a></li>
</ul>
</p>
<script type="text/javascript">
window.onload = function(){
var nav_level_1 = document.getElementsByClassName("nav_level_1")[0],
lis_1 = nav_level_1.children;
for(var i = 0;i < lis_1.length;i++){
lis_1[i].onmouseover = function(){
var ul = this.getElementsByClassName("nav_level_2")[0];
addHeight(ul);
}
}
}
function addHeight(ul){
var ul_height = ul.offsetHeight;
ul_height++;
if(ul_height <= 95){
ul.style.height = ul_height + "px";
setTimeout("addHeight('"+ul+"')",10);
}else{
return;
}
}
</script>
</body>
用settimeout寫二級選單的展開收縮,在settimeout中傳入一個帶有參數的函數,不知道怎麼傳,影片中是這樣寫的setTimeout("addHeight('" ul "')",10 )但是不太正常,請問是什麼原因?
雷雷
setTimeout 這個函數第一個參數可以接受一個 函數 或 一段程式碼,如果是程式碼,則將它放進
eval
執行。你這裡的寫法就是一段程式碼的寫法,你檢查一下引號的書寫,是不是一一對應的寫的正確。或是換成下面的兩個寫法都應該可以正常運作