簡體   English   中英

UserScript計時器錯誤

[英]UserScript Timer Error

好的,所以頁面上有一個按鈕,我正在嘗試更改Javascript中倒計時的文本。 我對該語言相當新(2天),並且不確定我的代碼有什么問題。 它不是在再次迭代之前等待整秒,而是立即重新迭代。

var c = 15;
function countDown(e){
  if (c!=0){
     e.value = 'Reply (' + c + ')';
     c--;
     setTimeout(countdown(e),1000);
  }
  else{
     e.value = 'Reply'}
  }
}

但似乎不是像我假設的那樣花了15秒,而是一下子就開始了(我通過添加alert('a');證明alert('a');在if語句中我可以看到按鈕文字正在改變)

我不確定這是Greasemonkey的問題還是JavaScript的問題。

你的問題在於這一行:

setTimeout(countdown(e),1000);

countdown(e)是對一個倒計時函數的調用,該函數返回void。 setTimeout函數接受函數引用和超時,因此您需要將其更改為:

setTimeout(countdown, 1000);

您當前的代碼是遞歸調用倒計時(e)15次,然后是setTimeout(void,1000);

如果需要setTimeout將參數(如e )傳遞給函數,則可以在超時后使用可選參數。

setTimeout(countdown, 1000, e);

暫無
暫無

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

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