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通过module.exprots返回的是promise对象而非data?2. 使用 CSS3 的 Media Query 浏览器会加载其他不同分辨率的 css 文件么3. “Webdrivers”可执行文件可能具有错误的权限请参阅https://sites.google.com/a/chromium.org/chromedriver/home4. php-_server-php_self - nginx $_SERVER[’PHP_SELF’] 得到重复路径是什么原因?5. 前端 - 类到底该如何去命名 .newsList 这种的命名难道真的不是过度语义化吗?~6. html - 开发android的调取我web页面 他之前用的是收费的浏览器包 显示是全的换了免费的浏览器包后 显示就不全 是什么原因啊7. gulp-ruby-sass编译出来的文件有错8. 关于docker下的nginx压力测试9. javascript - 给js写的盒子添加css样式,css样式没起作用。10. 数据挖掘 - 如何用python实现《多社交网络的影响力最大化问题分析》中的算法?

网公网安备