所以我在使用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
次,将其平方。由于您不想多次执行此操作,因此不需要循环。