这是我的代码
var flag = false;
var timer;
var work = 2;
var count = 0;
$('.mins').html(updateNum(work));
$('.secs').html(updateNum(count));
function workTimer() {
if(count < 0) {
work--;
count = 59;
}
if (work<0) {
return clearInterval(timer);
}
$('.mins').html(updateNum(work));
$('.secs').html(updateNum(count));
count--;
}
$('.start-button').click(function() {
if (flag == false) {
timer=setInterval(workTimer,1000);
$(this).html("stop");
flag = true;
return flag;
}
else if(flag == true){
clearInterval(timer);
$(this).html("start");
flag = false;
return flag;
}
})
$('.session-plus').click(function() {
if(flag == false) {
console.log(work);
$('.mins').html(updateNum(work++));
}
})
$('.session-minus').click(function() {
if(flag == false) {
$('.mins').html(updateNum(work--));
}
})
function updateNum(num) {
if(num < 10) {
return num = "0" + num;
}
else {
return num;
}
}
https://jsfiddle.net/wved99o3/
#edit 我不想再做另一个话题,所以我有下一个问题。你可以看到我的计时器从0开始不算数。定时器每增加1秒钟就会增加。我不明白为什么:/
答案 0 :(得分:2)
$('.mins').html(updateNum(work++));
您需要将++交换到变量之前。
$('.mins').html(updateNum(++work));
当++位于变量之后时,旧值将被传入,而不是新值。通过将++放在前面,它在传入值之前执行增量。