Jquery反转循环

时间:2016-02-21 02:38:59

标签: jquery function loops onclick

晚上好,

今天的难题基于这个主题: onClick Cycle through Divs...

我已根据自己的需要修改了循环:

<script>
var i = 0;
var $Showable = $('.content');

(function(){
$('#rightArrow').on('click', function(){
    i = (i + 1) % $Showable.length;
    $Showable.hide().eq(i).show();
    });
})();
</script>

我已经将变量移到了函数之外,只在页面加载时创建它们,所以我可以将它们用于另一个按钮,这让我很头疼。

所以这就是我所拥有的:

<script>
    (function(){
       $('#leftArrow').on('click', function(){
       i = (i - 1);
       if (i<=0) {i=$showable.length;}
       $Showable.hide().eq(i).show();
    });
})();
</script>

我认为这是我的问题:

i = (i + 1) % $Showable.length;

不能很好地向后转换,即-1:

    i = (i - 1);

我尝试添加if语句,其中:

 if (i>=0) {$Showable.hide().eq($showable.length).show();}
      else{$Showable.hide().eq(i).show();}

然后我开始工作1轮,然后一旦你第二次通过第一个Div就会空白页面。

如果i <= 0,则当前if产生相同的结果,我试图将i的值设置为$ showable.length。

感谢你的帮助。

澄清两个按钮(div)1个循环向前通过同一组div进行反向。

罗比

1 个答案:

答案 0 :(得分:0)

做到了:

<script>

var i = 0;
var $Showable = $('.content');
var length = $Showable.length;
(function(){
$('#rightArrow').on('click', function(){
    i = (i + 1) % length;
    $Showable.hide().eq(i).show();
    });
    })();

(function(){
$('#leftArrow').on('click', function(){
    $Showable.hide().eq(i).show();
    i = (i - 1);    
    if (i <= -1 * $Showable.length) {i=0};
    });
})();

if(i <= -1 * $ Showable.length){i = 0};是必需的