我想知道如何每隔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秒循环一次。
谢谢!
答案 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);