在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 }
setInterval
和setTimeout
都可以为你工作( 就像@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>