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. python - 有什么好的可以收集货币基金的资源?2. windows-7 - win7下使用cmder,如何设置vim的tab为4个空格?3. mysql 怎么做到update只更新一行数据?4. mysql - 要取出数据库中按某字段排序后的前10,20,30条数据要怎么做?5. word-wrap该如何使用?6. python 多进程 或者 多线程下如何高效的同步数据?7. javascript - CSS图片轮播显示问题8. python - 怎么进行服务器性能分析9. MySQL的SELECT...FOR UPDATE究竟起什么作用10. thinkPHP5中获取数据库数据后默认选中下拉框的值,传递到后台消失不见。有图有代码,希望有人帮忙

网公网安备