我正在尝试在jQuery中创建对函数的间隔调用,但它不起作用!我的第一个问题是,我可以将常见的JavaScript与jQuery混合使用吗?
我应该使用setInterval("test()",1000);
或类似的东西:
var refreshId = setInterval(function(){
code...
}, 5000);
我在哪里放置我呼叫的功能以及如何激活间隔?与jQuery相比,如何在JavaScript中声明函数是不同的?
答案 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>