Javascript 重置';setIntervall';计数器/删除现有实例

Javascript 重置';setIntervall';计数器/删除现有实例,javascript,Javascript,加载页面时,计时器将从10分钟倒计时。如果我在一段时间后按下鼠标,倒计时应该会再次开始。 但是计时器将在两个值之间跳转。看来,两者都在计数。如何删除退出间隔 Template.content.onRendered(function() { var display = document.querySelector('#timer'); startTimer( 600, display); }); Template.content.events({ 'mousedown'

加载页面时,计时器将从10分钟倒计时。如果我在一段时间后按下鼠标,倒计时应该会再次开始。 但是计时器将在两个值之间跳转。看来,两者都在计数。如何删除退出间隔

Template.content.onRendered(function() {
    var display = document.querySelector('#timer');

    startTimer( 600, display);
});

Template.content.events({
    'mousedown': function() {
        var display = document.querySelector('#timer');
        startTimer( 600, display);
        // this will start a new counter
        // but I want the old one to be replaced
    }
});

startTimer = function(duration, display) {
    var start = Date.now(),
        diff,
        minutes,
        seconds;
    function timer() {
        diff = duration - (((Date.now() - start) / 1000) | 0);
        minutes = (diff / 60) | 0;
        seconds = (diff % 60) | 0;

        minutes = minutes < 10 ? "0" + minutes : minutes;
        seconds = seconds < 10 ? "0" + seconds : seconds;

        display.textContent = minutes + ":" + seconds; 
    }
    timer();
    setInterval(timer, 1000);
};
Template.content.onRendered(函数(){
var display=document.querySelector(“#timer”);
startTimer(600,显示器);
});
Template.content.events({
“mousedown”:函数(){
var display=document.querySelector(“#timer”);
startTimer(600,显示器);
//这将启动一个新计数器
//但是我想换一个旧的
}
});
startTimer=功能(持续时间、显示){
var start=Date.now(),
差异,
会议记录,
秒;
函数计时器(){
diff=持续时间-((Date.now()-start)/1000)| 0);
分钟=(差异/60)| 0;
秒=(差异%60)| 0;
分钟=分钟<10?“0”+分钟:分钟;
秒=秒<10?“0”+秒:秒;
display.textContent=分钟+“:”+秒;
}
定时器();
设置间隔(定时器,1000);
};

在js中添加新变量

var timer = 0;
从更新
startTimer
功能中的代码

setInterval(timer, 1000);

然后在
mousedown
事件处理程序函数中,添加以下行

clearInterval(timer);
clearInterval(timer);