簡體   English   中英

setInterval()中的函數無延遲地執行

[英]function in setInterval() executes without delay

我正在制作一個jquery應用程序,通過使用setInterval()在指定的時間間隔后隱藏圖像。 問題是隱藏圖像功能立即執行而沒有延遲。

$(document).ready(function() {

  setInterval(change(), 99999999);

  function change() {
    $('#slideshow img').eq(0).removeClass('show');

  }

});

我在jsfiddle中測試它。

http://jsfiddle.net/wWHux/3/

您立即調用了該函數,而不是將其傳遞給setInterval

setInterval( change, 1500 ) - 將函數change傳遞給setInterval

setInterval( change(), 1500 ) - 調用函數change並將結果( undefined )傳遞給setInterval

你有setInterval(change(), 99999999); 最后立即調用change()函數並將其返回值傳遞給setInterval()函數。 您需要通過將change()包裝在函數中來延遲執行change()

setInterval(function() { change() }, 9999999);

或者你可以通過傳遞setInterval()函數本身而不調用它來延遲它。

setInterval(change, 9999999);

要么有效。 我個人發現第一個比第二個更清楚一點意圖。

你有setInterval(change(), 99999999); 它應該是setInterval(change, 99999999); 請參閱setInterval / setTimeout文檔。 :)

常見的錯誤,一直發生在我身上。 :)

更改setInterval(change(), 99999999); to setInterval(change, 99999999);

如您所知,99999999表示99999999毫秒。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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