WEB 教程
实践 示例
HTML 参考手册
CSS 参考手册
PHP 参考手册

如何在jQuery中的固定时间间隔后重复调用函数

主题:JavaScript / jQuery上一页|下一页

答案:使用 JavaScript setInterval() 方法

您可以使用 JavaScript setInterval() 方法在一定时间后重复执行函数。 setInterval() 方法需要两个参数,第一个通常是函数或表达式,另一个是以毫秒为单位的时间延迟。

在下面的示例中,showTime() 函数每 1000 毫秒(即 1 秒)重复调用一次,直到您告诉它停止。 让我们尝试一下,看看它是如何工作的:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>The JavaScript setInterval() Method</title>
<script src="https://code.jquery.com/jquery-3.5.1.min.js"></script>
<script>
    var myVar;    
    function showTime(){
        var d = new Date();
        var t = d.toLocaleTimeString();
        $("#demo").html(t); // 在页面上显示时间
    }
    function stopFunction(){
        clearInterval(myVar); // 停止计时器
    }
    $(document).ready(function(){
        myVar = setInterval("showTime()", 1000);
    });
</script>
</head>
<body>
    <p id="demo"></p>
    <button onclick="stopFunction()">Stop Timer</button>
</body>
</html>

但是,如果您正在做一些耗时的事情,更好的方法是使用 setTimeout() 函数。 因为,与 setInterval()setTimeout() 函数不同,您可以等到函数完全执行后再调用它。 这是一个例子:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>The JavaScript setTimeout() Method</title>
<style>
    img{
        display: none;
    }
</style>
<script src="https://code.jquery.com/jquery-3.5.1.min.js"></script>
<script>
    var myVar;    
    function showImage(){
        $("img").fadeIn(750).fadeOut(750);
        myVar = setTimeout(showImage, 2000);
    }
    function stopFunction(){
        clearTimeout(myVar); // 停止计时器
    }
    $(document).ready(function(){
        showImage();
    });
</script>
</head>
<body>
    <button onclick="stopFunction()">Stop Image Transition</button>
    <p>
        <img src="images/sky.jpg" alt="Cloudy Sky">
    </p>
</body>
</html>

在上面的例子中,showImage() 函数在图像淡入淡出过渡完全完成后每次 2000 毫秒(即 2 秒)后被调用。


FAQ 相关问题解答

以下是与此主题相关的更多常见问题解答:

Advertisements