Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/461.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 每5秒循环一次功能,然后在最后一次后重置_Javascript_Jquery_Loops_Timer - Fatal编程技术网

Javascript 每5秒循环一次功能,然后在最后一次后重置

Javascript 每5秒循环一次功能,然后在最后一次后重置,javascript,jquery,loops,timer,Javascript,Jquery,Loops,Timer,我需要循环通过函数切换块,以便函数将作为切换块1运行;开关片2;等但它必须是每5秒一次的i++。我试着把时间间隔放在循环中,但也没用。另外,在i=5后,我希望它复位 window.setInterval(function(){ for(var i = 1; i < 5; i++){ switch_tiles(i); } }, 5000); 试试这个: var i = 1; function myFunction() { if (i > 5) i = 1;

我需要循环通过函数切换块,以便函数将作为切换块1运行;开关片2;等但它必须是每5秒一次的i++。我试着把时间间隔放在循环中,但也没用。另外,在i=5后,我希望它复位

window.setInterval(function(){
 for(var i = 1; i < 5; i++){
   switch_tiles(i);
 }
}, 5000);
试试这个:

var i = 1;
function myFunction() {
  if (i > 5)
    i = 1;

  switch_tiles(i++);
  window.setTimeout(myFunction, 5000);      
}
myFunction();

你只需要告诉我你想在任何时候做什么就做什么。此外,这一切都取决于您的平铺是在base-0还是base-1。您可以将i++放在开关之前或之后,您想要的可能是这样的:

window.setInterval(function(){
  switch_tiles(i++);
  if (i>5) i=0;
  }, 5000);
这将每5秒运行一次函数,每次增加参数


请注意,这使用了一个全局变量窗口。我认为它有点脏…

你知道如何在计数器达到5时重置计数器吗?可能是@ialarmedalien的重复项我想我只需要做一个简单的ifi===5{i=1}或类似的操作。这无法在1处重新开始。它正在工作!!!这是一把小提琴:不,它坏了。它的哪一部分不能在1时重新开始还不够清楚?很简单!只需在第5次跑步后将“i”设置为0。你只是乐意给别人负面反馈吗?!是的,如果你指出你的答案不符合OP的要求,那么你就应该得到负面反馈。它应得的原因是什么?其他不太了解情况的人也会来这篇文章寻找答案。如果他们选择了你的答案,他们会疑惑为什么它不起作用,如何修复它,这只会产生另一个问题,而你可以修复或删除它。任何一个都可以。感谢您修复它。这正是我所需要的,我在开始时更改了它,因此I=2,因为它已经出现在tile 1上,这对我来说是一个错误,但非常感谢!如果允许的话,我会接受这个答案to@Reece,不用担心!您可以随时将已接受的答案更改为已完成的答案;
var i = 1;
function myFunction() {
  if (i > 5)
    i = 1;

  switch_tiles(i++);
  window.setTimeout(myFunction, 5000);      
}
myFunction();
i = 0;
window.setInterval(function() {
  i++;
  if(i > 5){
    i = 1;
  } 
  switch_tiles(i)
}, 5000);
window.setInterval(function(){
  switch_tiles(i++);
  if (i>5) i=0;
  }, 5000);