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