setinterval参数(javascript中setinterval)
js setinterval 中的时间参数问题
setTimeout(执行函数,时间)能满足你的要求,setinterval(执行函数,时间)不行。
因为setTimeout只运行一次而setinterval多次运行,每次timeout后再调用一次自己也就达到了多次运行的效果,并且每次调用的时间间隔可以不一样
如
var timer=1000;//这里定义一个全局变量,其它地方可能修改它
t=function(){
//your code here
//do something
timer+=10;//在这修改timer,当然,你在外面修改的话就把这个注释掉
setTimeout(t,timer);//再次调用
}
setTimeout(t,timer);//全局调用一次。

如何给window.setInterval的函数传递参数
众所周知,调用window.setInterval(funcname,time)时,funcname要么直接放置函数体,要么放置函数的名字,比如
function test(){
alert("");
}
window.setInterval(test,1000);
//window.setInterval("test",1000);
不过,如果要想给test函数传递参数就不好办了。实际上,通过一个匿名函数,就可以实现给函数传递参数了,比如
function test(username){
alert(username);
}
window.setInterval(function(){
test.apply(this,"comDeng");
},1000);
这样以来,就将"comDeng"传递给test函数了。如果要做一个通用的处理方法的话,就可以写这样一个函数来实现。
function test(username){
alert(username);
}
function bindInterval(funcName){
var args=[];
for(var i=1;iarguments.length;i++){
args.push(arguments[i]);
}
return function(){
funcName.apply(this,args);
}
}
window.setInterval(bindInterval(test,"comDeng"),1000);
像这种调用方法,看起来还是蛮复杂的,不妨再做一些简化:
function test(username){
alert(username);
}
function JInterval(funcName,time){
var args=[];
for(var i=2;iarguments.length;i++){
args.push(arguments[i]);
}
return window.setInterval(function(){
funcName.apply(this,args);
},time);
}
JInterval(test,2000,"comDeng");
这样以来的话,比原来可简洁多了!
关于javascript的setInterval函数传参问题
定义和用法
setInterval()?方法可按照指定的周期(以毫秒计)来调用函数或计算表达式。
setInterval()?方法会不停地调用函数,直到?clearInterval()?被调用或窗口被关闭。
由?setInterval()?返回的?ID?值可用作?clearInterval()?方法的参数。
语法:
setInterval(code,millisec[,"lang"])
参数描述:
code????必需。要调用的函数或要执行的代码串。????
millisec????必须。周期性执行或调用?code?之间的时间间隔,以毫秒计。????
返回值:
一个可以传递给?Window.clearInterval()?从而取消对?code?的周期性执行的值。
实例
body
????input?type="text"?id="clock"?size="35"?/
????script?language=javascript
????????var?int=self.setInterval("clock()",50)
????????function?clock(){
??????????var?t=new?Date()
??????????document.getElementById("clock").value=t
?????????}
????/script
????/form
????button?onclick="int=window.clearInterval(int)"Stop?interval/button
/body
/html
js setinterval 中的时间参数为0
setInterval 和 setTimeout 都是异步执行的,当你需要一段代码是异步执行的时候使用他们,不过使用setTimeout比较多,如果没有要求延时多久执行的话,时间参数可以设置为0;
还有一种情况是当你循环体中需要动态地获取 DOM 元素的时候,如果使用 for 或 while 循环的话,每个循环获取到的 DOM 都是一样的;这时你就需要使用 setInterval来代表循环了,这个时间参数也可以设置为 0
如何使用定时器settimeout,setInterval执行能传递参数的函数
无论是window.setTimeout还是window.setInterval,在使用函数名作为调用句柄时都不能带参数,而在许多场合必须要带参数,这就需要想方法解决。经网上查询后整理如下:\x0d\x0a例如对于函数hello(_name),它用于针对用户名显示欢\x0d\x0a迎信息:\x0d\x0avar userName="jack";\x0d\x0a//根据用户名显示欢迎信息\x0d\x0afunction hello(_name){\x0d\x0a alert("hello,"+_name);\x0d\x0a}\x0d\x0a这时,如果企图使用以下语句来使hello函数延迟3秒执行是不可行的:\x0d\x0awindow.setTimeout(hello(userName),3000);\x0d\x0a这将使hello函数立即执行,并将返回值作为调用句柄传递给setTimeout函数,其结果并不是程序需要的。而使用字符串形式可以达到想要的结果:\x0d\x0awindow.setTimeout("hello(userName)",3000);这是方法(一)\x0d\x0a这里的字符串是一段JavaScript代码,其中的userName表示的是变量,而且经测试,这个变量要是个全局的,如果是在某函数里面如此调用 setTimeout,而此变量只是个函数内部变量的话,是会报变量不存在的。但这种写法不够直观,而且有些场合必须使用函数名,于是有人想到了如下\x0d\x0a方法(二):\x0d\x0a