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

IT技术 javascript jquery jquery-plugins timer
2021-01-21 16:56:07

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

我正在寻找一种方法来自动更改幻灯片中的图像。

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

6个回答

为此,您不需要 jquery,在纯 javascript 中,以下将起作用!

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

要停止循环,您可以使用

clearInterval(intervalId) 
谁说我不能每 2 秒刷新一次 :D
2021-03-14 16:56:07
@andrewb 尽管如此,它对于发现这个问题并且确实需要 clearInterval() 的其他人很有用。
2021-03-19 16:56:07
你写了一个比 w3schools 更简洁的函数 - 一路走好!
2021-03-26 16:56:07
@Alucard 提问者没有具体说明它是否需要停止,所以我说不需要。
2021-03-28 16:56:07

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

setInterval(function(){ 
    //code goes here that will be run every 5 seconds.    
}, 5000);
是的,我修复了它,试图打字太快,知道它会很快得到答复:)
2021-03-12 16:56:07
您的开场建议仍然引用 setTimeout :)
2021-03-13 16:56:07
@Mark Yup,这就是我在时间不是很关键但需要定期执行作业时这样做的方式。
2021-03-18 16:56:07
你总是可以setTimeout从函数内部再次调用......这是我以前的方式>.<我猜它不能是一个匿名函数。除非有某种我不知道的 call_self() 函数。
2021-03-21 16:56:07
好的,谢谢:) 伙计,它迟到了。需要在疲倦时停止尝试回答问题。
2021-04-05 16:56:07

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

function everyTime() {
    console.log('each 1 second...');
}

var myInterval = setInterval(everyTime, 1000);

调用此行以停止循环:

 clearInterval(myInterval);

只是第一个答案的一点提示。如果您的函数已经定义,请引用该函数但不要调用它!!!所以不要在函数名后面加括号。就像:

my_function(){};
setInterval(my_function,10000);
这个答案为我节省了很多时间;我一直想知道为什么我的函数多年来没有被调用。幸运的是我偶然发现了这个答案;+1
2021-03-28 16:56:07
如果不调用一次,则第一次调用将在 10000 毫秒内。如果你马上想要一个,你仍然可以正常调用一次。
2021-04-04 16:56:07

上面提到的函数不管上次调用是否完成都会执行,一旦执行完成,这个函数每隔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
}