如何在jquery中编写延迟?

时间:2015-10-29 07:16:02

标签: javascript jquery html

实际上我的脚本是

var i=0;
while(i <  folder.length) 
{   

  $("#hide_message").load('/fdc.php?path='+encodeURIComponent(folder[i]) );  

  //Delay After 10 Sec  
  $("#hide_message").load('/member.php?path='+encodeURIComponent(folder[i]) ); 
  //Delay After 10 Sec  

    i++;
}

这是否可以延迟jquery中的每一行。

4 个答案:

答案 0 :(得分:4)

请在stackoverflow中查看以下问题(及其答案)。

delay() and .setTimeout()

jQuery delay and setTimeout

答案 1 :(得分:2)

setTimeout(function(){
//your action code                
},1000*10);

试试这个

答案 2 :(得分:1)

当然有可能。

查看jquery API文档。

https://api.jquery.com/delay/

var i=0;
while(i <  folder.length) 
{   

  $("#hide_message").load('/fdc.php?path='+encodeURIComponent(folder[i]) );  

  //Delay After 10 Sec  
  $("#hide_message").delay(1000).load('/member.php?path='+encodeURIComponent(folder[i]) ); 
  //Delay After 10 Sec  

    i++;
}

你可以试试这个。但我没有测试它!

  

.delay()方法最适合在排队的jQuery之间延迟   效果。因为它是有限的 - 例如,它没有提供一种方法   取消延迟-.delay()不是JavaScript本机的替代品   setTimeout函数,可能更适合某些用途   例。

答案 3 :(得分:1)

您可能想要这样做:

var i = 0;
while(i <  folder.length) {   
    var index = i;

    setTimeout(function() {
        $("#hide_message").load('/fdc.php?path=' + encodeURIComponent(folder[index]));  
    }, i * 1000);

    setTimeout(function(){
        $("#hide_message").load('/member.php?path=' + encodeURIComponent(folder[index])); 
    }, (i + 1) * 1000);

    i++;
}

使用这种方式,这些AJAX加载都不重合。

注意:您不应将i作为索引传递给folder数组。您应该声明一个局部变量并传递它。 var index = i;。为什么会出现JavaScript闭包的一些副作用。