JQuery如何每5秒调用一次函数。
我正在寻找一种自动更改幻灯片中图像的方法。
如果可能的话,我不想安装任何其他第三方插件。
JQuery如何每5秒调用一次函数。
我正在寻找一种自动更改幻灯片中图像的方法。
如果可能的话,我不想安装任何其他第三方插件。
你不需要使用jQuery,在纯JavaScript中,以下代码可以实现相同的功能:
var intervalId = window.setInterval(function(){
// call your function here
}, 5000);
您可以使用以下代码来停止循环:
clearInterval(intervalId)
你可以使用 setInterval 在页面上注册一个间隔,例如:
setInterval(function(){
//code goes here that will be run every 5 seconds.
}, 5000);
setTimeout
……这是我以前的做法 >.< 我猜它不能是匿名函数。除非有一种我不知道的call_self()函数。 - mpen一个很好的例子,演示如何使用 setInterval() 订阅一个持续循环,并使用 clearInterval() 来停止这个无限循环:
function everyTime() {
console.log('each 1 second...');
}
var myInterval = setInterval(everyTime, 1000);
调用此行以停止循环:
clearInterval(myInterval);
第一条回答只是一个小提示。如果你的函数已经定义好了,那么引用函数时不要调用它!!!因此,在函数名称后面不要加任何括号。就像这样:
只需引用函数名而不调用它。
my_function(){};
setInterval(my_function,10000);
以上提到的函数无论它之前是否完成执行,都会执行。这个函数在完成执行后,每隔 x 秒运行一次。
// IIFE
(function runForever(){
// Do something here
setTimeout(runForever, 5000)
})()
// Regular function with arguments
function someFunction(file, directory){
// Do something here
setTimeout(someFunction, 5000, file, directory)
// YES, setTimeout passes any extra args to
// function being called
}
无论是setInterval
还是setTimeout
都可以为您工作(如@Doug Neiner和@John Boker所写的一样,现在两者都指向setInterval
)。
请查看此处,以获取有关两者的更多解释,看看哪个最适合您,以及如何停止它们中的每一个。
你可以使用window.setInterval函数,时间必须以毫秒为单位定义,在下面的例子中,该函数将在每一秒(1000毫秒)后调用。
<script>
var time = 3670;
window.setInterval(function(){
// Time calculations for days, hours, minutes and seconds
var h = Math.floor(time / 3600);
var m = Math.floor(time % 3600 / 60);
var s = Math.floor(time % 3600 % 60);
// Display the result in the element with id="demo"
document.getElementById("demo").innerHTML = h + "h "
+ m + "m " + s + "s ";
// If the count down is finished, write some text
if (time < 0) {
clearInterval(x);
document.getElementById("demo").innerHTML = "EXPIRED";
}
time--;
}, 1000);
</script>