setinterval参数(javascript中setinterval)

http://www.itjxue.com  2023-01-25 07:54  来源:未知  点击次数: 

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?的周期性执行的值。

实例

html

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

(责任编辑:IT教学网)

更多

推荐杀毒防毒文章