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里?
展开
 我来答
凌晨六点整
2015-06-21 · TA获得超过140个赞
知道小有建树答主
回答量:309
采纳率:0%
帮助的人:151万
展开全部
你的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);
}
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式