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

时间:2016-12-30 18:20:35

标签: 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);
    }
<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()?

2 个答案:

答案 0 :(得分:8)

您需要计算iedName="APACC_" + name.Contains("_220") ? "1": "2" 函数中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);
}

答案 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);
}