我正在尝试在JS中创建一个简单的计时器,从25分钟开始倒计时。
$(document).ready(function() {
updateClock();
var timeInterval = setInterval(updateClock(), 1000);
});
var ms = 1500000;
var minutes = Math.floor(ms / 1000 / 60);
var seconds = Math.floor((ms / 1000) % 60);
function updateClock() {
ms -= 1000;
if (ms <= 0) {
clearInterval(timeInterval);
};
$('#minutes').html(minutes);
$('#seconds').html(seconds);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="minutes"></div>
<div id="seconds"></div>
我无法弄清楚为什么页面只显示25和0,而且从不打勾。我是否错误地使用了setInterval()?
答案 0 :(得分:8)
您需要计算iedName="APACC_" + name.Contains("_220") ? "1": "2"
函数中minutes
和seconds
的值。目前,它们从未从初始值更新。
此外,在设置间隔时,不要将括号添加到函数名中,否则它只是将引用传递给返回值,而不是函数本身:
updateClock()
var timeInterval;
$(document).ready(function() {
updateClock();
timeInterval = setInterval(updateClock, 1000);
});
var ms = 1500000;
function updateClock()
{
ms -= 1000;
var minutes = Math.floor(ms / 1000 / 60),
seconds = Math.floor((ms / 1000) % 60);
if (ms <= 0)
{
clearInterval(timeInterval);
};
$('#minutes').html(minutes);
$('#seconds').html(seconds);
}
答案 1 :(得分:3)
您忘了再次更新分钟和秒钟。
function updateClock() {
ms -= 1000;
if (ms <= 0) {
clearInterval(timeInterval);
};
minutes = Math.floor(ms / 1000 / 60);
seconds = Math.floor((ms / 1000) % 60);
$('#minutes').html(minutes);
$('#seconds').html(seconds);
}