关于jssetinterval的信息
js中setInterval()函数只执行一次的原因
原因分析
产生这个问题是因为我们对js函数理解不透彻导致的:
1,show():这样写表示函数执行后的结果
2,show:这样写表示函数的定义
因setInterval()要接收一个函数的定义而非结果,故改正为:
js里setinterval怎么用
function?show1(){
????trace("每隔1秒显示一次");
}
function?show2(str){
????trace(str);
}
setInterval(show1,1000);
setInterval(show2,2000,"每隔2秒我就会显示一次");
上面已经将函数的setInterval方法介绍了。
下面我们将介绍对象的setInterval方法。
首先,写一个setInterval在动作中调用对象的方法的例子,该例子不需要传递参数。
myobj=new?Object();//创建一个新的对象
myobj.interval=function){
????trace("每隔1秒显示一次");
}//创建对象的方法。
setInterval(myobj,"interval",1000);//设定时间间隔调用对象的方法。
接下来介绍如何传递参数。其实道理和函数的传递参数是一样的。
myobj=new?Object();
myobj.interval-function(str){
????trace(str);
}
setInterval(myobj,"interval",2000,"?每隔2秒我就会显示一次");
注意。要调用为对象定义的方法时,必须在专家模式中使用第二种语法格式。
这样子的话呢,我们来作一个动态显示时间的画面。可以用下面的代码实现。
setInterval(show,1000);
function?show(){
????time=new?Date();
????hour=time.getHours();
???????minu=time.getMinutes();
???????sec=time.get.Seconds();
????datetime=hour+":"+minu+":"+sec;
}//这里的datetime是一个动态文本框的变量名字。
这样子呢,setInterval这个方法大家应该学的很好了。现在呢,我们学习clearInterval.
clearInterval动作的作用是清楚对setInterval函数的调用,它的语法格式如下clearInterval(intervalid);intervalid是调用setInterval函数后返回的对象。
下面举一个简单的例子。
function?show(){
????trace("每隔一秒显示一次");
}
var?sh;
sh=setInterval(show,1000);
clearInterval(sh);
js setInterval循环问题
你在函数内再次用setInterval调用函数本身,就会产生叠加效果,速度会越来越快。应该一次性用setInterval调用函数即可:
script
var?i?=?0;
var?timer?=?setInterval(function(){
???document.getElementById("text").value?=?i++;
},5000);
function?stop2(){
???clearInterval(timer);
}
/script
或者改用setTimeout也可,这是一次性调用的(相当于定时器),那么在函数内再次调用就能实现循环效果了。而setInterval本身就是重复调用的(相当于计时器),不能放在函数内使用:
script
var?i?=?0;
var?timer?=?0;
window.onload?=?function?start2(){
???document.getElementById("text").value?=?i++;
???timer?=?setTimeout(start2,?5000);
}
function?stop2(){
???clearTimeout(timer);
}
/script