2010-02-04 55 views
0

我想每隔x秒將數據從mysql數據庫推到div。傳遞函數的jquery問題點擊函數

at window.setTimeout(update, 60000); - 如何將btnStart.click函數再次傳遞給它? 不太確定傳入函數調用的語法。

下面是引用

$('#btnStart').click(function() { 

$.ajax({ 

    url: "ajax.php", 

    type: "POST", 

    data: 'id=6', 

    timeout: 15000, 

    beforeSend: function(){ 

    }, 

    error: function(XMLHttpRequest, textStatus, errorThrown) { 
     $("#userstatus").html('Timeout contacting server..'); 
      window.setTimeout(update, 60000); 
    }, 

    success: function(output) {        
     output= jQuery.trim(output); 
     $('#userstatus').html(output); 

     window.setTimeout(update, 10000); 
    }, 

    complete: function(){ 

    } 

}); 

<div id="userstatus"></div> 

<input type="button" id="btnStart" value="start now"> 
+1

你缺少一個' '''後數據=' ID = 6'。 – 2010-02-04 10:30:55

回答

1
window.setTimeout(function(){$('#btnStart').click();}, 60000); 
0
window.setTimeout(function(){update();}, 10000); 

function update() 
{ 
    $("#btnStart").trigger("click"); 
} 

代碼或者你可以用另一個函數內部Ajax調用並調用在按鈕點擊的setTimeout方法該功能。

2

這將觸發一個按鈕,點擊每一秒:

window.setInterval(function() { 
    $('#btnStart').trigger('click'); 
}, 1000); 
+0

+1 ...間隔將是最優雅的方式來做到這一點! – 2010-02-04 10:40:45

+0

唯一的問題是,這應該是第一次點擊後(好易於解決)開始。但取決於'成功'或'錯誤'的時間間隔不同... – 2010-02-04 10:41:41

+0

setInterval是一個好主意,但如果讓我們的數據庫服務器出現錯誤,它仍然會每30秒調用一次ajax。也許setTimeout寫在btnStart裏面錯誤:更長的超時時間,成功:更短的超時時間,會更好。 – 2010-02-04 12:49:04