簡體   English   中英

setInterval 調用 function 的問題

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM