首页 文章

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

提问于
浏览
453

这个问题在这里已有答案:

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

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

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

7 回答

  • 20

    setIntervalsetTimeout 都可以为你工作(正如@Doug Neiner和@John Boker现在写的那样指向 setInterval ) .
    有关两者的更多解释,请参阅here以查看最常用的套件以及如何停止每个套件 .

  • 37

    上面提到的函数无论是否在先前的调用中完成都会执行,一旦执行完成,它就会在每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
    }
    
  • 29

    第一个答案只是一个小小的提示 . 如果您的功能已经定义,请参考该功能但不要调用它!所以不要在函数名后添加任何括号 . 就像:

    my_function(){};
    setInterval(my_function,10000);
    
  • 89

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

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

    调用此行来停止循环:

    clearInterval(myVar);
    
  • 3

    你可以使用window.setInterval和time必须以毫秒为单位定义,在下面的情况下,函数将在每一秒后调用(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>
    
  • 9

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

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

    你不需要jquery,在普通的javascript中,以下将工作!

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

    要停止循环,您可以使用

    clearInterval()
    

相关问题