JAVASCRIPT问题,clearInterval无法停止setInterval 5
functiontest1(){s1=setInterval(xx,20);}functionxx(){img_id.width=img_id.width+1;if(im...
function test1(){
s1=setInterval(xx,20);
}
function xx(){
img_id.width=img_id.width+1;
if(img_id.width>=dd){
//alert(1); //这里alert可输出,但是下面的clearInterval却没有效果。
clearInterval(s1);
}
}
function test1(){
s1=setInterval(xx,20);
}
//这句,去掉function直接写s1=setInterval(xx,20); 又可以停止,为何setInterval不能写在function里? 展开
s1=setInterval(xx,20);
}
function xx(){
img_id.width=img_id.width+1;
if(img_id.width>=dd){
//alert(1); //这里alert可输出,但是下面的clearInterval却没有效果。
clearInterval(s1);
}
}
function test1(){
s1=setInterval(xx,20);
}
//这句,去掉function直接写s1=setInterval(xx,20); 又可以停止,为何setInterval不能写在function里? 展开
1个回答
展开全部
你的s1在什么地方声明的,代码要规范,这种不规范代码总会出现各种坑的。
追问
var img_id = document.getElementById('img_id');
var dd=1000;
var s1;
function test1(e){
s1=setInterval('xx()',20);
}
s1在方法外面全局声明的也一样不行。
追答
//你的test1方法是如何调用的,如果test1方法执行环境不是window的话,你可以这么写
function test1(e){
window.s1=setInterval('xx()',20);
//在控制台打印s1确认只调用一次。
console.log( "window.s1",window.s1);
}
function xx(){
img_id.width=img_id.width+1;
if(img_id.width>=dd){
//alert(1); //这里alert可输出,但是下面的clearInterval却没有效果。
//将对象绑定到window下,不会赋值到内部变量中。
clearInterval(window.s1);
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询