javascript - 永远运行一个 jquery 任务

标签 javascript jquery

我是 jQuery/java 脚本的新手;试图制作一个 slider 。请帮助解决以下问题。

我想让一个div(类是 slider )永远淡出和淡入;请检查此代码。 是否可以为此使用 setInterval() 函数?

<html>
<head>
    <title>Slider</title>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <script src="../jquery/jquery.min.js"></script>
    <style>
        .slider1{
            width: 500px;
            height: 250px;  
            margin: 0 auto;
            background-image: url(images/rectblue.png);
        }
    </style>
    <script type="text/javascript">
        var runForever = $(document).ready(function () {

            $(".slider1").fadeOut(2000, function () {
                $(".slider1").fadeIn(2000);
            });

        });

        runForever();
        //setInterval(runForever, 4000);
        //This runs the function 'runForever' one time only, how to run it every 4 sec? 
        //the above commented out code does not work.

    </script>
</head>
<body>
    <div class="slider1"></div>        
</body>

最佳答案

您没有将 runforever 定义为函数,而是将其作为调用 $(document).ready 的结果。如果您将它定义为一个函数并将其放在 setInterval 中,它就可以工作。

var flashSlider = function () {
    $(".slider1").fadeOut(2000, function () {
        $(".slider1").fadeIn(2000);
    });
};
$(document).ready(function () {
    setInterval(flashSlider, 4000);
});

fiddle :http://jsfiddle.net/uoqdfhdb/

我认为递归地编写 flash-forever 更 jQuery-elegant:

var flashForever = function () {
    $(".slider1").fadeOut(2000).fadeIn(2000, flashForever);
};
$(document).ready(function () {
    flashForever();
});

http://jsfiddle.net/uoqdfhdb/1/

除了我想知道尾递归是否最终会导致堆栈溢出。

关于javascript - 永远运行一个 jquery 任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30829401/

相关文章:

jquery - 在当前表行中查找具有类的输入字段

JQuery/CSS 转换 : Easier way without using negative margins?

javascript - 是否可以使用这些数据在 nvd3.js 中生成图表?

javascript - 将两个对象克隆为一个

javascript - 将 props 传递给 Vue 组件中的元素属性

javascript - AngularJS - 将输入绑定(bind)到焦点

jquery - 根据其文本而不是值选择下拉选项

javascript - MongoDB findAndModify() 添加查询到更新子句

javascript - 在 JavaScript 中打印时间段

javascript - 单击时将时间添加到 setInterval?