在jQuery中使用setInterval调用函数?

时间:2011-03-30 09:00:26

标签: javascript jquery

我正在尝试在jQuery中创建对函数的间隔调用,但它不起作用!我的第一个问题是,我可以将常见的JavaScript与jQuery混合使用吗?

我应该使用setInterval("test()",1000);或类似的东西:

var refreshId = setInterval(function(){
    code...
}, 5000);

我在哪里放置我呼叫的功能以及如何激活间隔?与jQuery相比,如何在JavaScript中声明函数是不同的?

5 个答案:

答案 0 :(得分:47)

要编写最佳代码,您应该“使用”后一种方法,并使用函数引用:

var refreshId = setInterval(function() {}, 5000);

function test() {}
var refreshId = setInterval(test, 5000);

但是你的方法

function test() {}
var refreshId = setInterval("test()", 5000);

基本上也是有效的(只要test()是全局的)。

请注意,“jQuery”中没有这样的东西。你还在编写Javascript语言;你只是使用了一些jQuery库的预制函数。

答案 1 :(得分:7)

首先:是的,你可以将jQuery与常见的JS混合使用:)

建立函数的intervall调用的最佳方法是使用setTimeout方法:

例如,如果你有一个名为test()的函数并希望在5秒内重复它,你可以像这样构建它:

function test(){
    console.log('test called');
    setTimeout(test, 5000);
}

最后你必须触发一次这个功能:

$(document).ready(function(){
    test();
});

在加载所有html后,将自动调用此文档就绪函数。

答案 2 :(得分:0)

jQuery只是一组用Javascript编写的助手/库。您仍然可以使用所有Javascript功能,因此您可以从jQuery回调内部调用任何函数。 所以两种可能性都应该没问题。

答案 3 :(得分:0)

  

setInterval(function(){updatechat();},2000);

     

function updatechat(){alert('hello world'); }

答案 4 :(得分:0)

我已经为setInterval函数编写了自定义代码,该代码也可以提供帮助

let interval;
      
function startInterval(){
  interval = setInterval(appendDateToBody, 1000);
  console.log(interval);
}

function appendDateToBody() {
    document.body.appendChild(
        document.createTextNode(new Date() + " "));
}

function stopInterval() {
    clearInterval(interval);
  console.log(interval);
}
<!DOCTYPE html>
<html>
<head>
    <title>setInterval</title>
</head>
<body>
    <input type="button" value="Stop" onclick="stopInterval();" />
    <input type="button" value="Start" onclick="startInterval();" />
</body>
</html>