JQuery中SetTimeOut传参问题探讨


Posted in Javascript onMay 10, 2013

无论是window.setTimeout还是window.setInterval,在使用函数名作为调用句柄时都不能带参数。如果想要传入参数,自定义参数也好,事件参数event也好,解决办法是在此函数的基础上在做一层封装。其具体原理还不清楚,但是下边的办法确实能解决这个问题。
先看一个简单的代码

function show(){ 
alert("Hello World"); 
} 
setTimeout(show,1000);

这段代码的效果是在1秒后显示hello world,但是如果改成
setTimeOut(show(),1000);
就会立即显示,达不到延时的效果了。但是如果加上引号就可以了。如:
setTimeOut("show()",1000);
就可以了。但是如果带上参数的话,还是不行比如:
setTimeOut("show(name)",1000)
这时就了一个比较的方法,就是再写个函数,该函数返回一个不带参数的函数,具体如下:
script language="javascript"> 
function show(name) 
{alert("Hello World:" + name);} 
function _show(name) 
{ 
return function() 
{ 
show(name); 
} 
} 
setTimeout(_show(name),1000); 
function 
</script>
Javascript 相关文章推荐
基于MooTools的很有创意的滚动条时钟动画
Nov 14 Javascript
Javascript和HTML5利用canvas构建Web五子棋游戏实现算法
Jul 17 Javascript
JS可以控制样式的名称写法一览
Jan 16 Javascript
Bootstrap每天必学之表单
Nov 23 Javascript
EXT中单击button按钮grid添加一行(光标位置可设置)的实例代码
Jun 02 Javascript
浅谈jQuery中Ajax事件beforesend及各参数含义
Dec 03 Javascript
微信小程序页面间通信的5种方式
Mar 31 Javascript
ES6关于Promise的用法详解
May 07 Javascript
js循环map 获取所有的key和value的实现代码(json)
May 09 Javascript
vue兄弟组件传递数据的实例
Sep 06 Javascript
基于Vue实现图片在指定区域内移动的思路详解
Nov 11 Javascript
Node.js实现批量下载图片简单操作示例
Jan 18 Javascript
jQuery中读取json文件示例代码
May 10 #Javascript
Javascript级联下拉菜单以及AJAX数据验证核心代码
May 10 #Javascript
javascript级联下拉列表实例代码(自写)
May 10 #Javascript
jquery ui对话框实例代码
May 10 #Javascript
javascrip关于继承的小例子
May 10 #Javascript
jQuery ReferenceError: $ is not defined 错误的处理办法
May 10 #Javascript
解析瀑布流布局:JS+绝对定位的实现
May 08 #Javascript
You might like
消息持续发送的完整例子
2006/10/09 PHP
基于OpenCV的PHP图像人脸识别技术
2009/10/11 PHP
PHP操作Memcache实例介绍
2013/06/14 PHP
thinkphp模板输出技巧汇总
2014/11/24 PHP
使用PHP实现微信摇一摇周边红包
2016/01/04 PHP
PHP页面跳转实现延时跳转的方法
2016/12/10 PHP
分析php://output和php://stdout的区别
2018/05/06 PHP
PHP封装的分页类与简单用法示例
2019/02/25 PHP
laravel excel 上传文件保存到本地服务器功能
2019/11/14 PHP
Maps Javascript
2007/01/22 Javascript
jquery trim() 功能源代码
2011/02/14 Javascript
jQuery 获取兄弟元素的几种不错方法
2014/05/23 Javascript
Javascript基础教程之函数对象和属性
2015/01/18 Javascript
简介JavaScript中fixed()方法的使用
2015/06/08 Javascript
浅谈js的url解析函数封装
2016/06/28 Javascript
Express进阶之log4js实用入门指南
2018/02/10 Javascript
使用vue2实现带地区编号和名称的省市县三级联动效果
2018/11/05 Javascript
解决layui使用layui-icon出现默认图标的问题
2019/09/11 Javascript
原生JS实现pc端轮播图效果
2020/12/21 Javascript
Python ORM框架SQLAlchemy学习笔记之映射类使用实例和Session会话介绍
2014/06/10 Python
将Python代码打包为jar软件的简单方法
2015/08/04 Python
Python中模块与包有相同名字的处理方法
2017/05/05 Python
Python进阶之递归函数的用法及其示例
2018/01/31 Python
Python中一些不为人知的基础技巧总结
2018/05/19 Python
pandas读取csv文件,分隔符参数sep的实例
2018/12/12 Python
在python3中实现更新界面
2020/02/21 Python
CSS3教程(7):CSS3嵌入字体
2009/04/02 HTML / CSS
浅谈cookie和localStorage那些事
2019/08/27 HTML / CSS
MSC邮轮官方网站:加勒比海、地中海和世界各地的假期
2018/08/27 全球购物
台湾旅游网站:灿星旅游
2018/10/11 全球购物
东方红海科技面试题软件测试方面
2012/02/08 面试题
MYSQL支持事务吗
2013/08/09 面试题
中秋手机店促销方案
2014/06/16 职场文书
Vue3.0写自定义指令的简单步骤记录
2021/06/27 Vue.js
php实例化对象的实例方法
2021/11/17 PHP
MySQL创建管理KEY分区
2022/04/13 MySQL