setInterval - 如何只开一次?

时间:2012-03-16 17:28:13

标签: javascript jquery setinterval

你好,我有这段代码即使在我选择的时间之后也会激活一些代码。

问题在于,例如,如果我放3秒钟它将每3秒发射一次,我需要的是它在3秒后仅发射一次。

function playSound(timeLeft){
   var sendDataTimeout = function(){
      alert('OK');
   }
   var intervalReference = 0;
   clearInterval(intervalReference);
   intervalReference = setInterval(sendDataTimeout, timeLeft);
}

2 个答案:

答案 0 :(得分:12)

您不需要setInterval,需要setTimeout

顾名思义,setInterval会定期发射,而setTimeout只发射一次。但用法是一样的。

答案 1 :(得分:12)

使用setTimeout代替它,它的工作方式几乎相同但只会触发一次。您有clearTimeoutsetTimeout,因此它与setInterval

非常相似
function playSound(timeLeft){
   var sendDataTimeout = function(){
      alert('OK');
   }
   setTimeout(sendDataTimeout, timeLeft);
}

您不必再使用clearTimeout了。但是它存在并且与clearInterval一样工作。