我正在尝试在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);
}Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="minutes"></div>
<div id="seconds"></div>Run Code Online (Sandbox Code Playgroud)
我无法弄清楚为什么页面只显示25和0,并且永远不会下降.我是否错误地使用了setInterval()?
你需要计算的价值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);
}Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="minutes"></div>
<div id="seconds"></div>Run Code Online (Sandbox Code Playgroud)