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. javascript - 关于jsp中嵌入js代码的问题2. javascript - 百度坐标,返回目标附近有哪些坐标3. android-webview - Android 7.0 webview不自动刷新4. javascript - 网页打印页另存为pdf的代码一个问题5. javascript - 一个JS多元运算符的问题6. javascript - [MUI 子webview定位]7. javascript - 判断用户网络环境8. javascript - 有一个异步获取数据的函数A,其他依赖这个A得到的数据的函数是否都必须是异步的?9. javascript - 为什么var obj = {}创建对象的方法里面不能用this.xxx来声明属性 ?10. angular.js - angurlarJS的安卓的微信端中用加载ngCookies会出错的问题

网公网安备