javascript - jQuery 重置 setInterval 定时器

标签 javascript jquery

我的 Jquery:

function myTimer() {
    var sec = 15
    var timer = setInterval(function() { 
    $('#timer').text(sec--);
    if (sec == -1) {
      clearInterval(timer);
      alert('done');
     } 
    }   , 1000);

}

$("#knap").click(function() {
    myTimer();
});

$("#reset").click(function() {
// set timer to 15 sec again.. 
});

我希望在单击#reset 时重置计时器。

最佳答案

您需要将“计时器”变量保留在下次调用 myTimer 函数时可用的范围内,以便您可以清除现有间隔并使用新间隔重置它。尝试:

var timer;
functionn myTimer() {
    var sec = 15
    clearInterval(timer);
    timer = setInterval(function() { 
    $('#timer').text(sec--);
    if (sec == -1) {
      clearInterval(timer);
      alert('done');
     } 
    }   , 1000);

}

$("#knap").click(function() {
    myTimer();
});

$("#reset").click(function() {
   myTimer();
});

关于javascript - jQuery 重置 setInterval 定时器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11781149/

相关文章:

javascript - JQuery如何删除第一个<p>之前的所有<br>和 '&nbsp;'

javascript - CodeIgniter AJAX文件上传,上传时$_FILE为空

javascript - 将单击事件绑定(bind)到 jquery 中的列表项的正确方法

javascript - 如何获取下一个 JSON 项

javascript - Vue.js:v-for 完成后的事件

javascript - 未定义错误: TypeError: Cannot read properties of undefined (reading 'Icon' )

javascript - 在测验结束时显示用户答案

javascript - 安装 grunt 和 grunt cli 后找不到 grunt 命令

jquery - IE7 中的 jQuery 可以使用复合选择器吗?

javascript - knockout 数据绑定(bind)到自行生成的 DOM