【发布时间】:2014-09-16 22:49:14
【问题描述】:
我的 For 循环有问题,因为某些原因它没有正确计时。我让它每 5 秒点击一次我的“外星人”(您将在代码中看到),并且每次购买工人时它都会增加。因此,如果您有 2 个工人,则每 5 秒有 2 个外星人,每 5 秒有 3 个外星人,依此类推。但是,当我有 2 个或更多工人时,就像我想为每个工人点击外星人两次一样。
我想要的: 1 个 worker = 每 5 秒自动点击一次 // 2 个工人 = 每 5 秒自动点击两次 等等
它错误地做了什么: 1 名工人按我的意愿工作// 2名工人=每5秒自动点击两次,每次点击价值2 等等
这是运行 for 循环的变量:
var workerCheck = setInterval(function(){
var workers = parseInt($("#Workers").text());
if( workers > 0 ){
for(var i = 0; i < workers; i++){
$("#Alien").click();
}
}
},5000);
这是我整个代码的 pastebin 链接:http://pastebin.com/ApwQgG4w
希望我的问题有意义,例如,如果我有 2 个工人,它将每 5 秒将“外星人”值设置为 4,而我只想要 2,对于 3,我希望每 5 秒有 3 个外星人,而不是 9,等等。
【问题讨论】:
-
您在问题中提供的代码不足以重现问题。如果您编辑您的问题以提供能够重现问题的最小示例,这将对您和我们都有帮助。这样做,您可能会发现自己的错误。
-
看来您可能需要在重置之前清除
workerCheck间隔。否则,您的代码将在您每次雇用工人时添加另一个计时器。clearInterval(). -
@TomFenech 我不明白?我提供的代码就是我的全部吗?我试图找出它为什么坏了。当我有 2 个工人时,它会在外星人计数器上增加 2,但是它每 5 秒执行两次。所以在 5 秒内,我将得到 4 而不是我想要的 2。这发生在超过 1 名工人的所有事情上。
-
我刚刚测试了您问题中的代码,将元素
click()替换为console.log,它每 5 秒只触发两次。 -
@TomFenech 这是一个例子。当我购买了 2 个工人时,我希望它每 5 秒自动单击我的外星人两次。 5 秒过去后,我的总数应该增加 2。但是,无论出于何种原因,它目前增加了 4,我不知道为什么。这只是一个例子,每个工人数量超过 1 时都会发生这种情况。
标签: javascript jquery html for-loop