你好,我有一个计时器,既显示分钟又显示秒,当它低于1分钟时(例如约40秒),它开始出现故障,它仍在正确计时,但不时显示一些其他数字,例如27> 26 > 25比一小会儿,您可以看到例如34,并且计数> 24> 23等,但是这些数字之间是多少?如何删除它们,最好是检查代码。
<div class="container">
<p id="time"></p><br>
<button onclick='timer()'>Start Kviz</button>
</div>
<script>
function timer() {
var min = '01m';
var sec = 30;
var timer = setInterval(function () {
document.getElementById('time').innerHTML = '00d' + ' ' +
'00h' + ' ' + min + ' ' + sec + 's';
sec--;
if (sec === 0) {
min = '00m';
}
if (min === '00m') {
sec = 59;
timer = setInterval(function () {
document.getElementById('time').innerHTML = '00d' +
'00h' + min + sec + 's';
sec--;
if (sec < 0) {
alert ('Time is up!');
clearInterval(timer);
}
}, 1000);
}
}, 1000);
}
</script>
答案 0 :(得分:0)
您忘记在以下代码段中清除间隔:
if (min === '00m') {
sec = 59;
clearInterval(timer);
timer = setInterval(function () {
另外,请清除警报消息之前的时间间隔,如下所示:
if (sec < 0) {
clearInterval(timer);
alert ('Time is up!');
}
最后的代码段如下:
<div class="container">
<p id="time"></p><br>
<button onclick='timer()'>Start Kviz</button>
</div>
<script>
function timer() {
var min = '01m';
var sec = 30;
var timer = setInterval(function () {
document.getElementById('time').innerHTML = '00d' + ' ' +
'00h' + ' ' + min + ' ' + sec + 's';
sec--;
if (sec === 0) {
min = '00m';
}
if (min === '00m') {
sec = 59;
clearInterval(timer);
timer = setInterval(function () {
document.getElementById('time').innerHTML = '00d' +
'00h' + min + sec + 's';
sec--;
if (sec < 0) {
clearInterval(timer);
alert ('Time is up!');
}
}, 1000);
}
}, 1000);
}
</script>