js的定时器

    <ul class="ss">
        <li>1</li>
        <li>2</li>
        <li>3</li>
    </ul>

我想在点击每个li时,清除之前开的定时器,并且点击的li元素产生一个定时器。。我这里想不出来。。点击li元素时候该怎么清除之前开的所有定时器???麻烦知道的给回答下,谢谢

阅读 2.8k
2 个回答
(function() {
    var intervalId;
    var $list = $('.ss li');
    $list.on('click', function() {
        if(intervalId) { clearInterval(intervalId); }
        intervalId = setInterval(function() { console.log('hello world'); }, 1000);
    });
})();

你可以这样,在每次点击的时候,便首先关闭之前开的定时器,再开启当前需要的定时器

$(function(){
  var timer = null; // 存放定时器的变量
  var $childs = $('.ss li');  

  $childs.click(function(){
    // 先关闭定时器
    timer && clearInterval(timer);
    // 再开启
    timer = setInterval(function(){
      // 这里写你的逻辑,执行时间你自己定义
    }, 2000)
  })

})

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