分钟/秒倒数计时器没有滴答滴答?

gri*_*quo 0 javascript jquery

我正在尝试在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()?

Ben*_*enM 8

你需要计算的价值minutesseconds你的内部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)