javascript - 使用clearInterval 将 jQuery 计时器停止在 0

标签 javascript jquery timer countdown

我在使用 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 以给定的时间间隔运行提供的函数,因此您想要在该时间间隔上运行或检查的任何内容都必须在提供的函数中发生。

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>

关于javascript - 使用clearInterval 将 jQuery 计时器停止在 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46458667/

相关文章:

javascript - 为网络应用程序实现计时器

c# - 相当于 30 分钟的计时器滴答声是多少?

Javascript如何获取刚刚点击的按钮的id

javascript - 选择html表的一些行,并在单击链接时将所选行的一列的值发送到另一个php页面

javascript - jQuery Accordion - 打开页面加载的特定部分

javascript - 在 JQuery 中的动态数组中创建动态数组

jquery - jquery fadein() 在它支持的 css 或 html elem 方面是否有任何先决条件/约束

javascript - 在另一个文件中带有数组的函数中未定义

javascript - 创建或更新记录后,客户端(javascript 应用程序)是否应该请求 GET 列表?

c# - 在 Windows 窗体应用程序中使用计时器