javascript/jquery设置定时器并且在闭包中停止 要怎么弄?

比如下面varb=0;functiona(p){b++;console.log(b);if(b>5){//这里要如何写才能让他所在的定时器直接停止可以少设置一个变量}}v... 比如下面
var b=0;
function a(p){
b++;
console.log(b);
if(b>5){
//这里要如何写才能让他所在的定时器直接停止可以少设置一个变量
}
}
var p=setInterval(function(){
a(p)
},300);
我必须设置一个变量p来获取setInterval才能停止 有没有办法只要满足b>5 在闭包中设置停止 减少设置一个变量?
就是b>5那里 我要怎么写才能减少设置一个变量p直接可以停止掉
展开
 我来答
百度网友e2d7ae3
推荐于2016-02-14 · TA获得超过2207个赞
知道大有可为答主
回答量:1287
采纳率:0%
帮助的人:1613万
展开全部

我理解你是想做多个定时器且要规定执行次数,那你完全可以把定时器和方法写在一起,把要执行的的代码作为参数放进去,例如这样:

var a = 0, b = 5;
var timer = function(code,speed,count){
    var num = 0;
    var myTimer = setInterval(function(){
        code();
        num++;
        if(count&&num>=count)
            clearInterval(myTimer);
    },speed);    
};
timer(function(){console.log(a+b)},300,5);

 如果你不需要限制次数,最后一个参数留空就行了。

布故鸟
2015-07-17 · 超过40用户采纳过TA的回答
知道小有建树答主
回答量:217
采纳率:100%
帮助的人:67.1万
展开全部
我以前也是用一个变量来阻止循环执行的
追问
主要是我设置的定时器特别多  如果用变量的话会多出非常多行
追答
这种如果不用变量来做会出现bug的,有点阻止不了循环执行的感觉
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式