每秒调用javascript函数

时间:2015-11-19 11:33:43

标签: javascript function

我正在尝试学习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();

2 个答案:

答案 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);