所以我在使用Javascript时遇到问题,当我执行函数时,它给我错误的数字。基本上我已经设置好了,所以我的“总计”等于“总计”加“每秒”,每秒是我希望每秒添加到“总计”的数字。因此,如果“每秒”等于4,我希望它每秒将“总计”加4。

我有一个for循环,用作我的计时器,以单击一个隐藏的按钮,该按钮设置为采用任何秒数并将其添加到我的总计中。我的问题是,在persec传递值1之后,它开始错误地添加。例如,如果我将persec设置为2,我的总数将每秒增加4。它仅应增加2。例如,如果将persec设置为3,则每秒将增加9。好像是将平方的平方加到总数上,我不知道为什么。

以下是使用以下Javascript编辑的按钮和文本:

<p>Per second: <span id="persec">0</span></p>
<p>Total: <span id="total">0</span></p>
<button id="totalholder" hidden="true"></button>


这是我的“计时器”,它在其自身的功能中不适用于该问题,这就是为什么它看起来不合适的原因:

var totalCount;
clearInterval(totalCount);

    totalCount = setInterval(function () {
        if (persec > 0) {
            for (var i = 0; i < persec; i++) {
                $("#totalholder").click();
            }
        }
    }, 1000);


这是计时器按下的隐藏按钮:

$(function() {
$('#totalholder').click(function(){
    totalHolder1();
});

function totalHolder1() {
var persec = parseInt($('#persec').text());
var total = parseInt($('#total').text());

    total = isNaN(total) ? 0 : total + persec;

    $("#persec").text(persec);
    $("#total").text(total);
}
});

最佳答案

摆脱定时器函数中的循环:

totalCount = setInterval(function() {
    var persec = parseInt($("#persec").text(), 10);
    if (persec > 0) {
        $("#totalholder").click();
    }
}, 1000);


在您的原始代码中,单击处理程序将总数增加了persec,而for循环执行了persec次,将其平方。由于您不想多次执行此操作,因此不需要循环。

10-06 11:40