猿问

一个关于元素多次触发setInterval定时器的问题!明明在调用前有清除,却为何还是会多次触发

//需求:制作一个类似与抽奖转盘的效果,就是在点击抽奖的时候会触发定时器去执行方法

var iItems=0;

function startMovement (){

    var zhuanpanItems=$('#zhuangpan li');

    if(iItems<7)

    {

        iItems++;

        zhuanpanItems.removeClass('active').eq(iItems).addClass('active');

    }

    else{

        iItems=0;

        zhuanpanItems.removeClass('active').eq(iItems).addClass('active');

    }

};

$('#start').click(function(){  //start 元素是一个div不是input button

    clearInterval(timer_1);  //在此处我明明有清除过定时器,却为什么当我多次点击的时候依然会多次触发定时器,导致越点击转的越快

    var timer_1=setInterval('startMovement()',200);

});

以上代码在start.click()调用的时候,是不是因为我的timer_1变量是局部变量,所以导致在上方的clearInterval方法无法获取改变量,导致清楚失败?
如果是这样的那么我应该怎么样才能防止多次触发该定时器,因为我必须要在用户点击开始按钮的时候才会去转。望大神指点!

米琪卡哇伊
浏览 1649回答 1
1回答

长风秋雁

timer_1定义在外面(全局变量)就好了。&nbsp;PS:感觉你要补充下js变量作用域知识
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答