在jQuery中每5秒调用一个函数最简单的方法是什么?

JQuery,如何每5秒调用一次函数。

我正在寻找一种方式来自动化幻灯片中的图像变化。

如果可能,我宁愿不安装任何其他第三方插件。

window.setInterval(function(){ /// call your function here }, 5000); 

您可以使用setInterval在页面上注册一个间隔,即:

 setInterval(function(){ //code goes here that will be run every 5 seconds. }, 5000); 

只是第一个答案的小提示。 如果你的函数已经被定义了,那么引用这个函数但是不要调用它! 所以不要在函数名后加任何圆括号。 就像:

 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 } 

setIntervalsetTimeout都可以为你工作( 就像@Doug Neiner和@John Boker现在都指向setInterval )。
在这里看到更多的解释,以了解哪个套房你最多,以及如何阻止他们每个人。

一个很好的例子是订阅setInterval(),并使用clearInterval()来停止永久循环:

http://www.w3schools.com/jsref/met_win_clearinterval.asp

 function myTimer() { console.log(' each 1 second...'); } var myVar = setInterval(myTimer, 1000); 

调用这一行来停止循环:

  clearInterval(myVar); 

您可以使用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>