2015-05-27 76 views
1

https://jsfiddle.net/2z9unx02/12/如何将最后一个next()元素返回到列表中的第一个元素?

我有一个灯箱画廊滚动通过图像。当我到达最后或开始时,它会冻结最后一张照片。我希望照片可以循环往任一方向。上一个或下一个。我怎样才能触发最后一个回到第一个,反之亦然?提前致谢。

$buttonLeft.click(function() { 
    var temp = $("li.active").parents("div.pic_wrapper").prev(); 
    var imageLocation = temp.find("a").attr("href"); 
    var captionText = temp.find("img").attr("alt");  
    updateImage(imageLocation, captionText); 
    $("li.active").removeClass("active"); 
    temp.find("li").addClass("active"); 
}); 

$buttonRight.click(function() { 
    var temp = $("li.active").parents("div.pic_wrapper").next(); 
    var imageLocation = temp.find("a").attr("href"); 
    var captionText = temp.find("img").attr("alt");  
    updateImage(imageLocation, captionText); 
    $("li.active").removeClass("active"); 
    temp.find("li").addClass("active"); 
}); 

回答

0

在此之后:

var temp = $("li.active").parents("div.pic_wrapper").next(); 

..add如下:

temp = temp.length ? temp : $('li.active').parents('div.pic_wrapper').siblings().first(); 
+0

感谢。它完美的作品。我正试图围绕这个三元运营商包围我的头。我试图把它写成if语句,但似乎无法将其包围。我主要对条件和第一个表达式以及这一行代码的实际工作方式感到困惑。 –

+0

这应该这样做:'if(!temp.length){$('li.active')。parents('div.pic_wrapper')。siblings()。first(); }' – PeterKA

+0

实现相同结果的另一种方法是:'temp.length || 。$( 'li.active')父母( 'div.pic_wrapper')的兄弟姐妹()第();' – PeterKA

相关问题