如何创建基本的jquery循环?

时间:2012-07-11 10:56:32

标签: jquery loops slider

我正在尝试创建一个简单的循环,它将循环并且可以停止并启动。

我试着称自己为这个

var theloop = (function(){

            var theloop = (function(){

            $('#goldspot-2012 ul#goldspot-2012-list li').eq(currentItem).removeClass('current').fadeOut(500);
            $('#goldspot-2012 ul#goldspot-2012-list li').eq(currentItem+1).addClass('current').fadeIn(500);
            $('#gs-controls ul li').eq(currentItem).removeClass('current');             
            $('#gs-controls ul li').eq(currentItem+1).addClass('current');          

            if (currentItem == items -1){
                currentItem = 0;
                theloop();
            }

            else {
                currentItem++;  
                theloop();
            }



        });

这只是错误,因为我想它陷入了一些无限循环

我也试过

var theloop = setInterval(function(){

            $('#goldspot-2012 ul#goldspot-2012-list li').eq(currentItem).removeClass('current').fadeOut(500);
            $('#gs-controls ul li').eq(currentItem).removeClass('current');                         

            if (currentItem == items -1){
                currentItem = 0;
            }

            else {
                currentItem++;  
            }
            $('#goldspot-2012 ul#goldspot-2012-list li').eq(currentItem).addClass('current').fadeIn(500);
            $('#gs-controls ul li').eq(currentItem).addClass('current');

        }, 5000);

但这不能轻易停止和启动。

任何人都可以向我展示一个基本的循环,这个循环会一直持续到你停止它,或者是上面两个中的一个可以通过一点点的修补工作吗?

由于

1 个答案:

答案 0 :(得分:0)

试试这个:

        var cycler = true;
        var theloop = (function(){

        $('#goldspot-2012 ul#goldspot-2012-list li').eq(currentItem).removeClass('current').fadeOut(500);
        $('#goldspot-2012 ul#goldspot-2012-list li').eq(currentItem+1).addClass('current').fadeIn(500);
        $('#gs-controls ul li').eq(currentItem).removeClass('current');             
        $('#gs-controls ul li').eq(currentItem+1).addClass('current');          

        if (currentItem == items -1){
            currentItem = 0;
        }

        else {
            currentItem++; 
        }

        if(cycler) theloop();

        });

这使您有机会停止无限循环。当您需要停止循环时,将一些按钮或代码设置为 false