突然想到在一个函数中延时调用另外一个函数,在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]