setInterval 停止问题 20
varn=$('.a').length;setInterval(function(){$('.a').show().eq(n--).hide();n<0&&(n=$('....
var n = $('.a').length;
setInterval(function(){
$('.a').show().eq(n--).hide();
n < 0 && (n = $('.a').length);
},90)
求停止方法、并且是随机停止;
解决问题追加分 展开
setInterval(function(){
$('.a').show().eq(n--).hide();
n < 0 && (n = $('.a').length);
},90)
求停止方法、并且是随机停止;
解决问题追加分 展开
1个回答
展开全部
那是因为,js在,var是声明变量
但有点不同的是,看是在哪里声明,
如果,var是在函数方法function之内声明的,那变量只作用于该函数本身
如果是在函数方法之外声明的,那就是全局变量,无论在函数内函数外都能起作用(当然,在声明之前的代码是作用不到的)
根据这个原理
clearInterval(s) 这个s根本就不存在!
改正如下:
<script> var s, b = 0; function run(){s = setInterval("a()",40)} function a(){ var i = document.body.scrollTop,i = i*0.5; window.scrollTo(0,i) if(b<6){ b++; }else { clearInterval(s) } }</script>哦,你要有个错误
就是在被循环的函数内声明变量b,并且赋值为0;
那么,这个函数每运行一次,无论b的值是多少,是不是用于都会被归为0呢?
是不是永远的是小于6呢?
既然是小于6,那有怎么会停止呢?
请采纳。
但有点不同的是,看是在哪里声明,
如果,var是在函数方法function之内声明的,那变量只作用于该函数本身
如果是在函数方法之外声明的,那就是全局变量,无论在函数内函数外都能起作用(当然,在声明之前的代码是作用不到的)
根据这个原理
clearInterval(s) 这个s根本就不存在!
改正如下:
<script> var s, b = 0; function run(){s = setInterval("a()",40)} function a(){ var i = document.body.scrollTop,i = i*0.5; window.scrollTo(0,i) if(b<6){ b++; }else { clearInterval(s) } }</script>哦,你要有个错误
就是在被循环的函数内声明变量b,并且赋值为0;
那么,这个函数每运行一次,无论b的值是多少,是不是用于都会被归为0呢?
是不是永远的是小于6呢?
既然是小于6,那有怎么会停止呢?
请采纳。
追问
那么根据我的代码和问题,写一个例子好么,谢谢!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询