【问题标题】:I'm trying to make a loop with jQuery我正在尝试使用 jQuery 进行循环
【发布时间】:2010-02-09 23:10:10
【问题描述】:

我需要它做的就是一遍又一遍地运行函数 animateAds。任何人都可以帮忙吗?这是我的代码:

function animateAds(n) {
    $('#ad_1').fadeIn('slow', function (){
        $('#ad_1').delay(100).fadeOut('fast', function (){
            $('#ad_2').fadeIn('slow');
        });
    });
};

$(document).ready(function() {
    for (n = 0; n < 10; n++) {
    animateAds(n);
    }
});     

【问题讨论】:

  • 您有问题吗?您需要什么帮助?
  • 你遇到了什么错误?
  • 如果你不在函数内部使用它,就没有理由将 n 传递给函数,是吗?
  • ad_2 会淡出吗?

标签: jquery loops


【解决方案1】:
<!doctype html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
<script>
var i=0;
function animateAds() {
    if(i==9){return;}
    $('#ad_2').fadeOut('fast',function(){
      $('#ad_1').fadeIn('slow', function (){
        $('#ad_1').delay(100).fadeOut('fast', function (){
          $('#ad_2').fadeIn('slow', function(){i++;animateAds();});
        });
      });
    });
};
$(document).ready(function() {
    animateAds();
    });
</script>
</head>
<body>


<img id='ad_1' style='display:none' src='http://sstatic.net/so/img/logo.png'>
<br>

<img id='ad_2' src='http://sstatic.net/so/img/logo.png'>

我不确定这是否理想,但它可以作为一个独立的页面使用。这是你想要做的吗?

【讨论】:

    【解决方案2】:

    您的代码显示限制为 10,但您的问题听起来像是您希望它是永久的。

    这是一个如何永久运行的示例。如果你想要这个限制,那么这将是对回调中if() 语句的简单修改。

    $('document').ready(function() {    
        var elements = ['#ad_1','#ad_2'];
        var i = 0;
        var limit = elements.length;
        function rotateAds() {
            $(elements[i]).fadeIn(400);
            $(elements[i]).delay(1000).fadeOut(200,function(){
                                                        i++;
                                                        if(i == limit) i = 0;
                                                        rotateAds();
                                                    })
        }
        rotateAds();
    });
    

    这看起来和你要找的很接近吗?

    您可以根据需要向数组中添加任意数量的元素,因为它只是计算数组的长度。

    【讨论】:

      【解决方案3】:
      setInterval(function(){animateAds()}, 100);
      

      这将每秒调用您的函数 10 次(每次 100 毫秒)。我删除了 n 参数,因为它没有在您的代码中使用。

      问候。

      【讨论】:

        【解决方案4】:

        也许您需要在 for 循环中添加一个 'var',除非在其他地方声明了 n

        for( var n = 0 ; ....

        【讨论】:

        • JS 在没有var 的情况下不会有问题,它只会使n 成为全局对象。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-12-11
        • 1970-01-01
        • 1970-01-01
        • 2020-10-23
        • 2014-11-13
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多