2013-05-09 119 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); 
    } 
}); 
相關問題