我正在尝试学习javascript,当我尝试重复某个功能时立即购买,它似乎无法正常工作。
这是我的功能:
function heyhey(el){
el.style.position = "absolute";
el.style.top = Math.floor(Math.random()*document.body.clientHeight);
el.style.left = Math.floor(Math.random()*document.body.clientWidth);
}
heyhey(document.getElementById('random'));
//random is the id of my html div
这有效,但我希望每秒调用一次该函数
我试图重复这个功能:
function heyhey(el){
el.style.position = "absolute";
el.style.top = Math.floor(Math.random()*document.body.clientHeight);
el.style.left = Math.floor(Math.random()*document.body.clientWidth);
heyhey();
}
heyhey(document.getElementById('random'));
我也试过这个:
function heyhey(el){
el.style.position = "absolute";
el.style.top = Math.floor(Math.random()*document.body.clientHeight);
el.style.left = Math.floor(Math.random()*document.body.clientWidth);
setTimeout(heyhey, 5000);
}
heyhey(document.getElementById('random'));
heyhey();
答案 0 :(得分:5)
function heyhey(el)
该函数需要一个参数
setTimeout(heyhey, 5000);
你没有通过它。将参数指定为setTimeout
的第三个和后续参数。
setTimeout(heyhey, 5000, el);
答案 1 :(得分:1)
如果您想避免递归,可以使用setInterval函数。
一个简单的例子:
var intervalID = window.setInterval(myCallback, 500);
function myCallback() {
// Your code here
}
如果你想停止执行你的功能,你必须拨打clearInterval():
clearInterval(intervalID);