javascript - 一个关于元素多次触发setInterval定时器的问题!明明在调用前有清除,却为何还是会多次触发
伊谢尔伦
伊谢尔伦 2017-04-11 12:59:17
[JavaScript讨论组]
//需求:制作一个类似与抽奖转盘的效果,就是在点击抽奖的时候会触发定时器去执行方法
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 元素是一个p不是input button
    clearInterval(timer_1);  //在此处我明明有清除过定时器,却为什么当我多次点击的时候依然会多次触发定时器,导致越点击转的越快
    var timer_1=setInterval('startMovement()',200);
});

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

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

全部回复(2)
迷茫

timer_1定义在外面(全局变量)就好了。
PS:感觉你要补充下js变量作用域知识

迷茫

在线坐等大神来解答

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号