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. android - 使用百度sdk调用SDKInitializer.initialize(this)时报错?2. javascript - 最近用echarts做统计图时遇到两个问题!!3. 前端 - 怎样让scale缩小的元素不占据原来的空间?4. html5 - 用h5本地存储是否安全?5. 为什么redis中incr一个“0” 会报错?6. javascript - webpack-dev-server和webpack冲突吗7. 浅谈Vue使用Cascader级联选择器数据回显中的坑8. android - 优酷的安卓及苹果app还在使用flash技术吗?9. 微信公众号在线生成二维码带参数怎么搞?10. 利用IPMI远程安装centos报错!

网公网安备