使用 clearInterval 在 0 处停止 jQuery 计时器

Stop jQuery timer at 0 using clearInterval

我在使用 clearInterval 停止我的简单计数计时器时遇到问题,一旦它等于 0。本质上,计时器超过 0 变为负值而不是停在 0。我正在创建一个基本测验,理想情况下会发出警报一旦计时器到达并停止在 0,正确答案的用户。

以下是当前代码:

var count = 10;
var gameTime;

gameTime = setInterval("counter()", 1000);

function convertSeconds(s){
    var min = Math.floor(s / 60);
    var sec = s % 60;
    return min + ":" + sec;
}

function counter(){
count--;
$("#timer").text(convertSeconds(count));
}

if (count === 0) {
    clearInterval("#timer");
} else {
    //Do nothing
}
<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>Trivia</title>
 <script src="https://code.jquery.com/jquery-3.2.1.js" integrity="sha256-DZAnKJ/6XZ9si04Hgrsxu/8s717jcIzLy3oi35EouyE=" crossorigin="anonymous"></script>



</head>
<body>
<div id ="timer">10</div>
</body>

只需将您的 if 检查移至计数器函数并清除 gameTime 变量。

setInterval 运行s 在给定的时间间隔内提供的功能,因此您想要 运行 或检查该时间间隔的任何事情都必须在提供的功能中发生。

var count = 10;
var gameTime;

gameTime = setInterval("counter()", 1000);

function convertSeconds(s){
    var min = Math.floor(s / 60);
    var sec = s % 60;
    return min + ":" + sec;
}

function counter(){
count--;
$("#timer").text(convertSeconds(count));
if (count === 0) {
    clearInterval(gameTime);
} else {
    //Do nothing
}
}
<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>Trivia</title>
 <script src="https://code.jquery.com/jquery-3.2.1.js" integrity="sha256-DZAnKJ/6XZ9si04Hgrsxu/8s717jcIzLy3oi35EouyE=" crossorigin="anonymous"></script>



</head>
<body>
<div id ="timer">10</div>
</body>