JQuery中SetTimeOut传参问题探讨

时间:2013-05-10    点击:103   
无论是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>
jQuery判断iframe中元素是否存在的方法
js实现点击注册按钮开始读秒倒计时的小例子
JS打开层/关闭层/移动层动画效果的实例代码
解析javascript 实用函数的使用详解
jquery 提交值不为空的元素示例代码
> 返回     
地址:上海市普陀区胶州路941号长久商务中心 电话: QQ:
© Copyright 2012 上海网络 Product All Rights Reserved