码迷,mamicode.com
首页 > 其他好文 > 详细

setTimeOut传参数

时间:2015-01-09 23:36:43      阅读:225      评论:0      收藏:0      [点我收藏+]

标签:

  最近,因项目需要,需要实现setTimeOut传参数的功能,搜索了很多的资源。终于找到一个比较好的方法了,记录下来,与大家分享。

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

  先看一段简单的javascript代码:

1 function show()
2 {
3   alert("Hello World");
4 }  
5 setTimeout(show,1000);

  代码结果是:1秒中之后输出Hello World,但如果改成:

1 setTimeout(show(),1000);

  会立即输出结果,达不到延时的目的。但如果加上引号(双引号或单引号)就可以了,如:

1 setTimeout("show()",1000);

  但如果加上参数又不可以了,如:

1 setTimeout("show(name)",1000);

  可通过以下方法来解决以上问题:写一个函数,并返回一个不带参数的函数。代码如下:

 1 <script language="javascript">  
 2     function show(name)  
 3     {
 4         alert("Hello World:" + name);
 5     }  
 6     function _show(name)  
 7     {  
 8         return function()  
 9         {  
10             show(name);  
11         }  
12     }  
13     setTimeout(_show(name),1000);  
14 </script>

 

  需求:1.setTimeOut传参数 2.动态设置onclick事件

  解决方法:

 1 function timeClick(obj)    
 2 {    
 3     //   var obj=document.getElementById(‘‘);    
 4     obj.style.backgroundColor="gray";    
 5     obj.onclick=function(){ return false;};    
 6     setTimeout(function(){resetbgColor(obj);},3000);    
 7 }    
 8            
 9 function resetbgColor(obj)    
10 {    
11      //  var obj=document.getElementById(‘‘);    
12     obj.style.backgroundColor="blue";    
13      //   $(‘#‘+‘‘).click(timeClick);    
14      //  debugger;    
15     obj.onclick=function(){    
16     timeClick(this);    
17     };    
18 }

 

setTimeOut传参数

标签:

原文地址:http://www.cnblogs.com/iyitong/p/4214276.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!