每隔x秒循环一次脚本

时间:2018-02-02 11:29:09

标签: javascript jquery html

我想知道如何每隔x秒循环一次脚本。我对javascript和jquery比较新,但是我知道如何在HTML中使用它。

我试图让这个脚本每34秒运行一次,但是我不知道如何循环它。

这是我的剧本:

function byId(id){
  return document.getElementById(id)
}
window.addEventListener('load', onDocLoaded, false);

function onDocLoaded(evt) {
  setTimeout(function() { 
    byId('audioID').play() 
  }, 13000);
}

然而,我不知道如何在13秒开始后每34秒循环一次。

谢谢!

3 个答案:

答案 0 :(得分:4)

setTimeout使脚本在x毫秒后运行,如果您想多次运行脚本,则需要使用setInterval

setInterval( function(){ byId('audioID').play() }, 34000 );

如果我理解正确,你想在34秒后开始间隔,所以你需要这样做:

setTimeout(function(){
    //Declaring the function within this code scope just for DRY purposes
    var runFn = function(){
        byId('audioID').play();
    }
    runFn(); //runs the function once before the interval starts.
    setInterval(runFn, 34 * 1000 );
}, 13 * 1000);

答案 1 :(得分:2)

创建一个每34秒执行byId('audioID').play()的新功能

window.addEventListener('load', onDocLoaded, false);

function onDocLoaded(evt) {}

function byId(id) {
  console.log(id);
  return document.getElementById(id);
}

const loopTime = 34000; //34000 ms = 34secs

var startProcess = function() {
  setInterval(function() {
    byId('audioID').play();
  }, loopTime);
};

setTimeout(startProcess, 13000);

答案 2 :(得分:0)

这很有效。如果您需要停止间隔,请拨打clearInterval(interval)

var interval;
setTimeout(function(){
    console.log("Started interval after 1 sec");
    interval = setInterval(function(){
                    console.log("hai")},2000)
                },1000);