在jQuery中使用setInterval调用函数?

3D-*_*tiv 25 javascript jquery

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

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

var refreshId = setInterval(function(){
    code...
}, 5000);
Run Code Online (Sandbox Code Playgroud)

我在哪里放置我调用的函数以及如何激活间隔?与jQuery相比,如何在JavaScript中声明函数是否有所不同?

Lig*_*ica 49

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

var refreshId = setInterval(function() {}, 5000);
Run Code Online (Sandbox Code Playgroud)

要么

function test() {}
var refreshId = setInterval(test, 5000);
Run Code Online (Sandbox Code Playgroud)

但你的方法

function test() {}
var refreshId = setInterval("test()", 5000);
Run Code Online (Sandbox Code Playgroud)

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

请注意,没有像"在jQuery中"那样的东西.你还在编写Javascript语言; 你只是使用一些预制函数作为jQuery库.


ayk*_*ayk 7

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

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

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

function test(){
    console.log('test called');
    setTimeout(test, 5000);
}
Run Code Online (Sandbox Code Playgroud)

最后你必须触发一次函数:

$(document).ready(function(){
    test();
});
Run Code Online (Sandbox Code Playgroud)

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

  • 随着settimeout我总是确定,我的功能的调用总是发生在所需的时间之后和功能完成之后...使用setintervall可以实现5秒......但是如果你的时间框架更紧密并且你的功能没有完成会发生什么让我们说300ms然后再次调用该函数??? 与settimeout这个不能发生...... (2认同)