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

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

  先看一段简单的javascript代码:

1 function show()
2 {
  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>

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

  解决方法:

 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="blue";
// $('#'+'').click(timeClick);
// debugger;
obj.onclick=function(){
timeClick(this);
};
}

最新文章

  1. Entity Framework 教程——Entity Framework中的实体类型
  2. Mysql数据库 - 增删改
  3. Greenplum-概念篇
  4. sublime text 3 使用方法
  5. NGUI的localPosition和Position之间的关系
  6. Docker实践(3)—浅析device mapper的thin provision
  7. eclipse内置tomcat启动方法
  8. 全文检索引擎Solr系列—–全文检索基本原理
  9. 如何通过CSS3实现背景图片色彩的梯度渐变
  10. CocosCode IDE 打包APK失败的原因
  11. EasyUI - LinkButton 按钮控件
  12. JavaScript :memory leak [转]
  13. UVa 727 - Equation
  14. JavaScript+canvas 绘制多边形
  15. hdu 3966 Aragorn&#39;s Story(树链剖分+树状数组/线段树)
  16. CSS布局(四) float详解
  17. Linux 学习 (七) 挂载命令 &amp; 用户登陆查看
  18. springMVC参数传递实例
  19. sql,按照时间排序,取前N条
  20. 深入浅出javascript(三)封装和继承

热门文章

  1. PHP:php遍历数组 foreach echo() list()总结
  2. Airflow 调度基础
  3. SQL小知识_长期总结
  4. JSON.parse(text[, reviver])
  5. java中char类型转换成int类型的两种方法
  6. mysql基础,修改数据表
  7. react与微信小程序
  8. k8s的service简述
  9. 判断IP连接数前五,并自动加入防火墙
  10. .net core IdentityServer4 使用query参数