Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.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 Jquery在循环中使用setTimeout_Javascript_Jquery_Timer - Fatal编程技术网

Javascript Jquery在循环中使用setTimeout

Javascript Jquery在循环中使用setTimeout,javascript,jquery,timer,Javascript,Jquery,Timer,我想将p的值从10更改为1,延迟10秒 for (var i=0;i<9;i++) { setTimeout(function(){$('#timer').text(10-i)}, 1000); } for(var i=0;i使用setInterval实现以下目标:- var i=0; var timer= setInterval(function(){ i++; if(i==10){ clearI

我想将p的值从10更改为1,延迟10秒

for (var i=0;i<9;i++) {
    setTimeout(function(){$('#timer').text(10-i)}, 1000);
}

for(var i=0;i使用setInterval实现以下目标:-

    var i=0;
     var timer= setInterval(function(){
          i++;
          if(i==10){
            clearInterval(timer);    
          }
          $('#timer').text(10-i); 
      }, 1000);
在您的代码中,for循环不会等待
setTimeout
完成。因此,在
setTimeout
等待时,
for循环
结束。因此,当
for循环
结束时,一秒钟后,..i的值为9,显示10-9=1


以下是使用setInterval实现以下目的的链接:-

    var i=0;
     var timer= setInterval(function(){
          i++;
          if(i==10){
            clearInterval(timer);    
          }
          $('#timer').text(10-i); 
      }, 1000);
在您的代码中,for循环不会等待
setTimeout
完成。因此,在
setTimeout
等待时,
for循环
结束。因此,当
for循环
结束时,一秒钟后,..i的值为9,显示10-9=1


以下是使用setInterval实现以下目的的链接:-

    var i=0;
     var timer= setInterval(function(){
          i++;
          if(i==10){
            clearInterval(timer);    
          }
          $('#timer').text(10-i); 
      }, 1000);
在您的代码中,for循环不会等待
setTimeout
完成。因此,在
setTimeout
等待时,
for循环
结束。因此,当
for循环
结束时,一秒钟后,..i的值为9,显示10-9=1


以下是使用setInterval实现以下目的的链接:-

    var i=0;
     var timer= setInterval(function(){
          i++;
          if(i==10){
            clearInterval(timer);    
          }
          $('#timer').text(10-i); 
      }, 1000);
在您的代码中,for循环不会等待
setTimeout
完成。因此,在
setTimeout
等待时,
for循环
结束。因此,当
for循环
结束时,一秒钟后,..i的值为9,显示10-9=1


这是一个链接,您需要这样的东西,它使用
setInterval
,并且通过清除间隔来处理内存泄漏

var i = 10, intId = setInterval(function () {
    if (i > 0) $('#timer').text(--i); else clearInterval(intId);
}, 1000);

您需要这样的东西,它使用
setInterval
,并且通过清除间隔来处理内存泄漏

var i = 10, intId = setInterval(function () {
    if (i > 0) $('#timer').text(--i); else clearInterval(intId);
}, 1000);

您需要这样的东西,它使用
setInterval
,并且通过清除间隔来处理内存泄漏

var i = 10, intId = setInterval(function () {
    if (i > 0) $('#timer').text(--i); else clearInterval(intId);
}, 1000);

您需要这样的东西,它使用
setInterval
,并且通过清除间隔来处理内存泄漏

var i = 10, intId = setInterval(function () {
    if (i > 0) $('#timer').text(--i); else clearInterval(intId);
}, 1000);

对不起,我找到了另一个解决办法:)我希望你满意

var count = 10;

function run(){
    $('#timer').text(count--);
    if(count>=0) {
        setTimeout(run, 1000);
    }
}
run();

对不起,我找到了另一个解决办法:)我希望你满意

var count = 10;

function run(){
    $('#timer').text(count--);
    if(count>=0) {
        setTimeout(run, 1000);
    }
}
run();

对不起,我找到了另一个解决办法:)我希望你满意

var count = 10;

function run(){
    $('#timer').text(count--);
    if(count>=0) {
        setTimeout(run, 1000);
    }
}
run();

对不起,我找到了另一个解决办法:)我希望你满意

var count = 10;

function run(){
    $('#timer').text(count--);
    if(count>=0) {
        setTimeout(run, 1000);
    }
}
run();

您可以使用递归函数来构建此函数:


您可以使用递归函数来构建此函数:


您可以使用递归函数来构建此函数:


您可以使用递归函数来构建此函数:


当您需要在异步方法中使用同步处理的数据时,这是此类情况的常见问题。 在您的例子中,您提高循环-它的同步过程,它增加
i
,并运行代码,您将文本放在右括号中。所以
for
增加
i
并在每次迭代中运行代码。在每次迭代中设置新的超时,应该在一段时间内运行,它是异步的。那么,第一次
setTimeout
start发生了什么循环已经完成,
i
已经是10,并且
setTimeout
使用其回调

要解决此任务,您必须使用closure-instally invoke函数,该函数在每次迭代时都将调用
i
作为参数,并在该函数中设置超时。在这种情况下,您传递的参数将存储在作用域中,并可用于超时回调:

var timerNode = $('#timer'),
    stepInSec = 1;

for (var i=10; i>=0; i--) (function(t) {
  window.setTimeout(function() {
    timerNode.text(t);
  }, (10-t)*stepInSec*1000)
}(i)) 

当您需要在异步方法中使用同步处理的数据时,这是此类情况的常见问题。 在您的例子中,您提高循环-它的同步过程,它增加
i
,并运行代码,您将文本放在右括号中。所以
for
增加
i
并在每次迭代中运行代码。在每次迭代中设置新的超时,应该在一段时间内运行,它是异步的。那么,第一次
setTimeout
start发生了什么循环已经完成,
i
已经是10,并且
setTimeout
使用其回调

要解决此任务,您必须使用closure-instally invoke函数,该函数在每次迭代时都将调用
i
作为参数,并在该函数中设置超时。在这种情况下,您传递的参数将存储在作用域中,并可用于超时回调:

var timerNode = $('#timer'),
    stepInSec = 1;

for (var i=10; i>=0; i--) (function(t) {
  window.setTimeout(function() {
    timerNode.text(t);
  }, (10-t)*stepInSec*1000)
}(i)) 

当您需要在异步方法中使用同步处理的数据时,这是此类情况的常见问题。 在您的例子中,您提高循环-它的同步过程,它增加
i
,并运行代码,您将文本放在右括号中。所以
for
增加
i
并在每次迭代中运行代码。在每次迭代中设置新的超时,应该在一段时间内运行,它是异步的。那么,第一次
setTimeout
start发生了什么循环已经完成,
i
已经是10,并且
setTimeout
使用其回调

要解决此任务,您必须使用closure-instally invoke函数,该函数在每次迭代时都将调用
i
作为参数,并在该函数中设置超时。在这种情况下,您传递的参数将存储在作用域中,并可用于超时回调:

var timerNode = $('#timer'),
    stepInSec = 1;

for (var i=10; i>=0; i--) (function(t) {
  window.setTimeout(function() {
    timerNode.text(t);
  }, (10-t)*stepInSec*1000)
}(i)) 

当您需要在异步方法中使用同步处理的数据时,这是此类情况的常见问题。 在您的例子中,您提高循环-它的同步过程,它增加
i
,并运行代码,您将文本放在右括号中。所以
for
增加
i
并在每次迭代中运行代码。在每次迭代中设置新的超时,应该在一段时间内运行,它是异步的。那么,第一次
setTimeout
start发生了什么循环已经完成,
i
已经是10,并且
setTimeout
使用其回调

要解决此任务,您必须使用closure-instally invoke函数,该函数在每次迭代时都将调用
i
作为参数,并在该函数中设置超时。在这种情况下,您传递的参数将存储在作用域中,并可用于超时回调:

var timerNode = $('#timer'),
    stepInSec = 1;

for (var i=10; i>=0; i--) (function(t) {
  window.setTimeout(function() {
    timerNode.text(t);
  }, (10-t)*stepInSec*1000)
}(i)) 
var-brea