无法停止js代码

Can not stop js code

本文关键字:代码 js 无法停止      更新时间:2023-09-26

我有一个名为"count"div,现在我想将其值从0增加到10。我就是这样做的:

<script>
    var i = 0;
    var refreshId = function() {
        $('#count').text(i);
        i++;
        if (i > 10) {
            clearInterval(refreshId);
        }
    };
    $(document).ready(function() {
        setInterval(refreshId, 500);
    });
</script>

但计数器并没有停止。怎么了?

clearInterval()接受setInterval()函数返回的标识符。

<script>
    var i = 0;
    var refreshId;
    var refreshFunction = function() {
        $('#count').text(i);
        i++;
        if (i > 10) {
            clearInterval(refreshId);
        }
    };
    $(document).ready(function() {
        refreshId = setInterval(refreshFunction, 500);
    });
</script>

试试这个:

在控制台中粘贴时可以正常工作。

    var i = 0;
    var refreshId = function() {
        $('#count').text(i);
        i++;
        console.log(i);
        if (i > 10) {
            clearInterval(a);
        }
    };
    a = setInterval(refreshId, 500);

由于startTime()将运行500mls,因此在其内部设置一个计数器以递增到10,然后清除间隔。

var counter = 0;
var tt=setInterval(function(){startTime()},500);
function startTime()
{
    if(counter == 10) {
        clearInterval(tt);
    } else {
        counter++;
    }
    document.getElementById('count').innerHTML = counter;  
}

嗯,我不知道这段代码中到底发生了什么(除了你写的内容),但纯粹从观察来看,refreshID似乎是在I==10之后被调用的。

另一个选项是使用递归setTimeout:

var i = 0;
var refreshFunction = function() {
    $('#count').text(i);
    i++;
    if (i <= 10) {
        setTimeout(refreshFunction, 500);
    }
};
$(document).ready(function() {
    setTimeout(refreshFunction, 500);
});