如何在javascript中停止间隔?
为什么间隔不停?
setInterval(alarm, 500);
window.clearInterval(alarm);
Run Code Online (Sandbox Code Playgroud)
还尝试过:
window.setInterval(alarm, 500);
window.clearInterval(alarm);
Run Code Online (Sandbox Code Playgroud)
总是同样的问题:(
仍然不起作用:
var switc = 1;
getValue();
function getValue (){
if(switc == 1){
var myTimer = window.setInterval(alarm, 500);
}
else if(switc == 0){
window.clearInterval(myTimer);
}
}
function alarm(){
console.log("test");
}
Run Code Online (Sandbox Code Playgroud)
epa*_*llo 11
当您调用setInterval时,它返回一个用于取消事件的整数.将其存储到变量中并使用该变量取消事件.
var myTimer = window.setInterval(alarm, 500);
window.clearInterval(myTimer);
Run Code Online (Sandbox Code Playgroud)
编辑:
您的代码不起作用,因为myTimer是一个局部变量,并且每次调用该函数时都会重置!
让它全球化.
var myTimer = null;
function getValue (){
if(switc == 1){
myTimer = window.setInterval(alarm, 500);
}
...
Run Code Online (Sandbox Code Playgroud)
重复调用函数或执行代码片段,每次调用该函数之间都有固定的时间延迟.
句法
var intervalID = window.setInterval(func, delay[, param1, param2, ...]);
var intervalID = window.setInterval(code, delay);
Run Code Online (Sandbox Code Playgroud)
哪里
intervalID 是一个唯一的间隔ID,您可以传递给clearInterval().func 是您想要重复调用的函数.code 在备用语法中,是您希望重复执行的一串代码(建议不要使用此语法,原因与使用eval()相同)delay是每次调用func之前setInterval()函数应该等待的毫秒数(千分之一秒).与setTimeout一样,强制执行最小延迟.请注意,在第一种语法中将其他参数传递给函数在Internet Explorer中不起作用.如果要在该浏览器上启用此功能,则必须使用兼容性代码(请参阅回调参数段落).| 归档时间: |
|
| 查看次数: |
18169 次 |
| 最近记录: |