繁体   English   中英

在 jQuery 中使用 setInterval 调用函数?

[英]Call function with setInterval in jQuery?

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

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

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

我在哪里放置我调用的函数以及如何激活间隔? 与 jQuery 相比,如何在 JavaScript 中声明函数有区别吗?

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

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

或者

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

但你的方法

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

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

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

首先:是的,您可以将 jQuery 与普通 JS 混合使用 :)

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

例如,如果您有一个名为 test() 的函数并希望将其全部重复 5 秒,您可以像这样构建它:

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

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

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

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

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

我为 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>

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM