[英]Problem with setInterval to call function
我試圖讓一個簡單的腳本工作,但我一定做錯了什么,因為它不工作。 我只想設置一個調用 function 的間隔時間。 Preciate一些幫助,也許不是最好的解決方案。 但我對此並不陌生。
$(document).ready(function() {
startInterval(); // activate timer
function startInterval() {
var t = setInterval("autoSave", 20000);
}
function autoSave() {
alert("test");
}
});
這些中的任何一個都可以,但不是你所擁有的
// Pass the real function
function startInterval() {
var t = setInterval(autoSave, 20000);
}
// THIS MAY NOT WORK
// eval
function startInterval() {
var t = setInterval("autoSave()", 20000);
}
//
// Anonymous function
function startInterval() {
var t = setInterval(function() { autoSave(); }, 20000);
}
推理如下:如果你直接傳遞一個function,它會調用它。 但是,如果您傳遞一個字符串,它將在超時時間到時對其進行評估 - 在您的情況下返回eval
,在我的第二種情況下返回評估的 function (注意括號)
刪除“”,使其成為對 function 的引用。
function startInterval() {
var t = setInterval(autoSave, 20000);
// ^now you have a reference to
// autoSave and setInterval knows
// what to execute
}
1)更好的做法是使 t - 全局,否則它將無法在 startInterval() function 之外訪問。 但是你需要它來清除間隔
即聲明 var t; 在function startInterval();
2) 考慮: t = setInterval('autoSave()', 20000);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.