javascript - settimeout中传入参数的问题
问题描述
<body> <p class='nav'><ul class='nav_level_1'> <li><a href='https://www.haobala.com/wenda/4071.html#'>首页</a></li> <li><a href='https://www.haobala.com/wenda/4071.html#'>课程大厅</a><ul class='nav_level_2'> <li><p class='corn'></p></li> <li><a href='https://www.haobala.com/wenda/4071.html#'>JavaScript</a></li> <li><a href='https://www.haobala.com/wenda/4071.html#'>JQuery</a></li></ul> </li> <li><a href='https://www.haobala.com/wenda/4071.html#'>学习中心</a></li> <li><a href='https://www.haobala.com/wenda/4071.html#'>经典案例</a></li> <li><a href='https://www.haobala.com/wenda/4071.html#'>关于我们</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)但是不太正常,请问是什么原因?
问题解答
回答1:setTimeout(function () {addHeight(ul)},10);回答2:
setTimeout 这个函数第一个参数可以接受一个 函数 或者 一段代码,如果是代码,则将它放进eval执行。
你这里的写法就是一段代码的写法,你检查一下引号的书写,是不是一一对应的写的正确。或者换成下面的两个写法都应该可以正常工作
setTimeout(function () { addHeight(ul)}, 10);
setTimeout(addHeight, 10, ul)
相关文章:
1. node.js - 我是一个做前端的,求教如何学习vue,node等js引擎?2. javascript - 获取标签中的字符串3. javascript - vue-cli创建的vue项目去哪里找啊?4. java - bin目录有什么特殊含义吗?为什么可执行文件都放在bin目录?5. java - 读写锁中 写锁的降级问题6. css - autoprefixer没有添加web-kit前缀7. java - 如何修改Eclipse项目那一块的背景颜色?8. android - NavigationView 的侧滑菜单中如何保存新增项(通过程序添加)9. javascript - yo创建angular报错10. mysql新建字段时 timestamp NOT NULL DEFAULT ’0000-00-00 00:00:00’ 报错

网公网安备