[英]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.