所以我有一个Javascript的问题,当我执行一个函数时,它给了我错误的数字。基本上我设置了"Total“等于"Total”加上" persec ",persec是我希望每秒添加到"Total“中的数字。所以如果"persec“等于4,我希望它每秒将4加到"Total”上。
我有一个for循环,它作为我的计时器来单击一个隐藏的按钮,它被设置为获取任何persec值并将其添加到我的合计中。我的问题是,在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);
}
});发布于 2014-10-03 10:41:51
去掉计时器函数中的循环:
totalCount = setInterval(function() {
var persec = parseInt($("#persec").text(), 10);
if (persec > 0) {
$("#totalholder").click();
}
}, 1000);在您的原始代码中,单击处理程序将总数增加persec,而for循环执行的是persec次,这是它的平方。因为你不想做多次,所以你不需要这个循环。
发布于 2014-10-03 10:38:01
我不小心把它修好了。
我所要做的就是将我的for循环改为:
for (var i = 0; i < persec; i = i + persec)我不确定为什么这个解决了它,我以前用另一种方式做过。
https://stackoverflow.com/questions/26172487
复制相似问题