2015-04-17 111 views
1

我想使用setInterval來調用一個函數,將使用ajax加載訂單。但是,當我傳入回調參數時,setInterval函數停止工作。 WsetInterval不起作用回調函數

母雞我沒有通過任何參數開始工作。

關於如何使它可以與參數一起工作的任何想法?以下是我的代碼

預先感謝您!

function httpGetRequest(page){ 
     $.get(page) 
     .done(function(data){ 
       $(".display_orders").html(data); 
     }); 
} 
setInterval(httpGetRequest('load_orders.php'), 30000); 
+0

順便說一句,這很可能是一個重複的問題,因爲新手往往會碰到這樣的問題,因爲他們不明白javascript如何處理設置間隔和超時 –

回答

8

在這種情況下

setInterval (httpGetRequest('load_orders.php'), 30000); 

功能立即執行

使用這樣

setInterval (function() { 
    httpGetRequest('load_orders.php') 
}, 30000); 
+2

或者像這樣'setInterval(httpGetRequest,30000,'load_orders.php');'(在現代瀏覽器上; IE> 9) –

+0

明白了!非常感謝@JqueryKing – json2021

0

你也可以這樣調用。

function myFunction() 
{ 
httpGetRequest('load_orders.php'); 
} 

function httpGetRequest(page){ 

     $.get(page) 

      .done(function(data){ 
       $(".display_orders").html(data); 
      }); 


} 

setInterval (myFunction, 30000); 
0

另一種方法是使用下面的語法:

setInterval(httpGetRequest, 30000, 'load_orders.php'); 
+0

迷人,從來不知道你可以在毫秒後將參數傳遞給函數。 –

1

當你使用setIntervalsetTimeout一定要給它一個變量名,這樣,如果你需要,你可以取消它。

var orderInterval = setInterval(function(){httpGetRequest('load_orders.php');}, 30000); 

倘若你想停止它,你現在就可以撥打電話:

clearInterval(orderInterval); 
+1

對不起,我複製了錯誤的代碼位:P –