简体   繁体   English

如何使用setInterval或setTimeout并在计数期间显示结果?

[英]How can I use setInterval or setTimeout and display the results during the count?

I'm trying to make a timer count down from 5 seconds to zero before a function is called, and I can do that successfully, but I haven't yet been able to display the timer value as it counts down. 我正在尝试在调用函数之前使计时器从5秒倒数到零,我可以成功完成此操作,但是由于倒计时,我还无法显示计时器值。 Instead of displaying the values, the <div></div> goes from a blank space to "Number: 0". <div></div>而不是显示值,而是从空格变为“ Number:0”。 I've used both setTimeout and setInterval with the same result. 我使用setTimeoutsetInterval的结果相同。

<script type="text/javascript">
    for (i = 5; i > 0; i--) {
        function countDown() {
            setInterval(function () {
                document.getElementById("displayDiv").innerHTML = "Number: " + i;
            }, 1000);
        }
    }
</script>

I also tried using .value in place of .innerHTML with no help. 我也尝试在没有帮助的情况下使用.value代替.innerHTML

<input type="button" value="Count" onclick="countDown()" />

<div id="displayDiv" />

This seems like it should be really simple, but it has me stumped. 这似乎应该很简单,但是却让我感到困惑。 Any help is appreciated 任何帮助表示赞赏

function countDown(i) {
    var int = setInterval(function () {
        document.getElementById("displayDiv").innerHTML = "Number: " + i;
        i-- || clearInterval(int);  //if i is 0, then stop the interval
    }, 1000);
}
countDown(5);

DEMO: http://jsfiddle.net/DerekL/sFtqZ/ (extra callback argument included) 演示: http : //jsfiddle.net/DerekL/sFtqZ/ (包括额外的回调参数)

try 尝试

<script type="text/javascript">
function countDown() {
var i = 5;
var myinterval = setInterval(function() {
    document.getElementById("displayDiv").innerHTML = "Number: " + i;

    if (i === 0) {
        clearInterval(myInterval);
        //call your function
    }
    else {
        i--;
       }
    }, 1000);
}​
</script>

http://jsfiddle.net/pjSKa/ http://jsfiddle.net/pjSKa/

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM