晚上好,
今天的难题基于这个主题: 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进行反向。
罗比答案 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};是必需的