setTimeOut传参数(转)

突然想到在一个函数中延时调用另外一个函数,在JQuery1.3.2中没有发现相应方法,在网上搜索,搜集如下,特做个完整保存:

(1)转自:[url=http://blog.csdn.net/nsrainbow/article/details/2370329]http://blog.csdn.net/nsrainbow/article/details/2370329[/url] 原文如下

无论是window.setTimeout还是window.setInterval,在使用函数名作为调用句柄时都不能带参数。

先看一个简单的代码:
 

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);
</script>

 


(2)转自[url=http://blog.csdn.net/huanglan513/article/details/5669912]http://blog.csdn.net/huanglan513/article/details/5669912[/url] 原文如下


setTimeout传参数问题,弄了很久,终于解决了,O(∩_∩)O哈!


view plain

 

 

 

function timeClick(obj)  
       {  
        //   var obj=document.getElementById('');  
           obj.style.backgroundColor="gray";  
           obj.onclick=function(){ return false;};  
           setTimeout(function(){resetbgColor(obj);},3000);  
       }  

       function resetbgColor(obj)  
       {  
         //  var obj=document.getElementById('');  
           obj.style.backgroundColor="";  
        //   $('#'+'').click(timeClick);  
      //  debugger;  
           obj.onclick=function(){  
               timeClick(this);  
           };  
       }  

 


我发现这句还真是万能啊,太服了, [b]function(){ method(param);}[/b]

[b] 这里两个地方都用到了,解决了我的所有问题,1.setTimeout传参数 2.动态设置onclick事件[/b]

[b] setTimeout(function(){resetbgColor(obj);},3000);[/b]


[b] obj.οnclick=function(){
timeClick(this);
};[/b]

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值