解决setTimeout传参类型的问题
2014-01-07 13:37
211 查看
原文链接:http://blog.163.com/leijiangjiahe@126/blog/static/121546792009713112844520/
window.setTimeout 方法是用来延迟执行某段函数(方法)的。但他对调用指定的方法并传参寸在一定缺陷。一般直接传参,只能传入字符传之类的参数,但对于Object类型的就无法直接传入,我的方法就是 重写window.setTimeout方法,利用apply回掉,进行传参,具体如下:
<script type="text/javas
cript">
var _st = window.setTimeout;
//fRef 是test函数,mDelay是时间
window.setTimeout = function(fRef, mDelay) {
if(typeof fRef == 'function'){
var argu = Array.prototype.slice.call(arguments,2);
alert("argu "+argu);
var f = (
function(){
fRef.apply(null, argu);
});
return _st(f, mDelay);
}
return _st(fRef,mDelay);
}
function test(x,y,z){
alert(x+" "+y+" "+z);
}
//第一个参数是要执行的函数,第二个参数是间隔时间,后面的参数是要传入的内容
window.setTimeout(test,1000,document.getElementById("d"),'abc','123');
</script>
非常好用~
window.setTimeout 方法是用来延迟执行某段函数(方法)的。但他对调用指定的方法并传参寸在一定缺陷。一般直接传参,只能传入字符传之类的参数,但对于Object类型的就无法直接传入,我的方法就是 重写window.setTimeout方法,利用apply回掉,进行传参,具体如下:
<script type="text/javas
cript">
var _st = window.setTimeout;
//fRef 是test函数,mDelay是时间
window.setTimeout = function(fRef, mDelay) {
if(typeof fRef == 'function'){
var argu = Array.prototype.slice.call(arguments,2);
alert("argu "+argu);
var f = (
function(){
fRef.apply(null, argu);
});
return _st(f, mDelay);
}
return _st(fRef,mDelay);
}
function test(x,y,z){
alert(x+" "+y+" "+z);
}
//第一个参数是要执行的函数,第二个参数是间隔时间,后面的参数是要传入的内容
window.setTimeout(test,1000,document.getElementById("d"),'abc','123');
</script>
非常好用~
相关文章推荐
- 【javascript】解决setTimeout不能传参的问题
- 【javascript】解决setTimeout不能传参的问题
- MYSQL复制源文件 丢失问题解决, innoDB 类型转换为 MyISAM
- iPhone开发笔记(15)URL传参的问题和解决方法
- Android解决使用findViewById时需要对返回值进行类型转换问题的辅助类
- 解决在LinqDataSouce中使用GUID参数类型的问题
- 关于Silverlight对匿名类型数据绑定的问题及其解决方法
- 解决.Net Remoting无法传Stream类型参数的问题
- error C2011: “Shape”:“class”类型重定义 问题的解决
- 借助构造函数实现继承(解决引用类型问题)
- Javascript escape 解决 Jquery Ajax 异步请求 URL中文传参乱码问题 一般处理程序Handler获取参数
- Android中通过泛型解决findViewById需要强制类型转换的问题
- SSM项目无效的列类型问题的解决
- 关于vue-router中的query动态传参问题的解决
- Asp.Net服务器发送HTTP标头后无法设置内容类型的问题解决
- ajax请求json类型无法跨域传递cookie的问题解决
- 解决“PowerPoint 无法加载类型库msppt.olb”问题
- SpringMVC 映射Date类型时的问题,及解决
- Guava中的TypeToken,解决泛型运行时类型擦除的问题
- 详解SpringMVC注解@initbinder解决类型转换问题