2013-05-09 120 views
-3

当滚动事件发生时,我需要能够等待一定的时间。setTimeout()不工作,因为它应该是

代码:

$(window).scroll(function() 
{ 
    if($(window).scrollTop() + $(window).height() == $(document).height()) 
    { 
     setTimeout(function(){}, 1000); //I need to be able to wait 1 second and then continue with execution... 
     $(".loader").show().delay(700).fadeOut(); 
     $.ajax({ ///more code }); 
    } 
}); 

任何想法可能是错误的?

为什么setTimeout()在这个特定的例子中不起作用?

+4

它的工作原理与其应该完全相同。如果您希望延迟执行,您的代码编码不正确。考虑你正在传递一个函数。当然,这肯定有一些原因。 – 2013-05-09 20:48:21

+0

是的,你是对的...我没有意识到这一点,这是在我面前:) – 2013-05-09 20:50:19

回答

3

setTimeout()是非阻塞的。将稍后应该发生的代码移到该空函数中。

setTimeout(function(){ 
    $(".loader").show().delay(700).fadeOut(); 
    $.ajax({ /* more code */ }); 
}, 1000); 
+0

啊我愚蠢的:)这是正确的在我面前:)谢谢你,虽然 – 2013-05-09 20:49:14

0

要耽误什么应该放在里面的setTimeout这样的 -

setTimeout(function(){ 
     $(".loader").show().delay(700).fadeOut(); 
     $.ajax({ ///more code }); 
}, 1000); 
0

把你的代码需要在设定的时间进行功能与等待。

$(window).scroll(function() 
{ 
    if(your condition) 
    { 
    setTimeout(function(){ 
      $(".loader").show().delay(700).fadeOut(); 
      $.ajax({ ///more code }); 
      }, 1000); 
    } 
}); 
相关问题