关闭计时器的问题

$(document).ready(function(){
   
    var val = 0;
    var timer;
    function move(){
        $('.wrap_div div').css({opacity:0,zIndex:0});
        $('.list li').removeClass('white');

        val++;
        if(val == 3){
            $('.list li').eq(0).addClass('white');  
        }else if(val > 3){
              val = 1;
        }
        $('.list li').eq(val).addClass('white'); 
           
        $('.wrap_div div').eq(val).css({opacity:1,zIndex:1});

        // $('.wrap_div').css({left : val*500*-1});

        timer = setTimeout(move,6000)
    }
    setTimeout(move,3000);
    $('.right').click(function(){
        clearTimeout(timer);
        move();
        return
    })
})

请问为什么计时器这样关不掉啊。求指点。。

阅读 2.4k
2 个回答

我早你那个上面修改了一下,你替换你那部分试试,看能不能达到效果,代码上有注释:

$(document).ready(function(){
   
    var val = 0;
    var timer;
    function move(){
        $('.wrap_div div').css({opacity:0,zIndex:0});
        $('.list li').removeClass('white');

        val++;
        if(val == 3){
            $('.list li').eq(0).addClass('white');  
        }else if(val > 3){
              val = 1;
        }
        $('.list li').eq(val).addClass('white'); 
           
        $('.wrap_div div').eq(val).css({opacity:1,zIndex:1});

        // $('.wrap_div').css({left : val*500*-1});
        clearTimeout(timer); //不管前面有没有定时器,先清除一下
        timer = setTimeout(move,6000);
    }
    timer = setTimeout(move,3000); //这里也需要把定时器存起来
    $('.right').click(function(){
        clearTimeout(timer);
        move(); //这里我有些不理解,你都清掉了定时器,怎么又执行move函数,函数里面又有一个定时器,这样你整个程序的定时器会一直存在
        return
    })
})

clipboard.png
你到底想在哪里执行定时器

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题