Heim > Fragen und Antworten > Hauptteil
<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>
Verwenden Sie settimeout, um die Erweiterung und Kontraktion des sekundären Menüs zu schreiben. Ich weiß nicht, wie ich es übergeben soll: setTimeout("addHeight('"+ ul+"')",10) Aber es ist nicht normal. Was ist der Grund?
漂亮男人2017-07-05 11:08:49
setTimeout 这个函数第一个参数可以接受一个 函数 或者 一段代码,如果是代码,则将它放进eval
执行。
你这里的写法就是一段代码的写法,你检查一下引号的书写,是不是一一对应的写的正确。或者换成下面的两个写法都应该可以正常工作
setTimeout(function () {
addHeight(ul)
}, 10);
setTimeout(addHeight, 10, ul)