2015-06-23 81 views
0

考虑下面的标记:遍历多个无序列表

<div class="col6"> 
    <h2>Accueil</h2> 
    <ul class="listing"> 
     <li><a href="#" title="bg_home">Accueil</a></li> 
     <li><a href="#" title="bg_homeTakeover">Homepage Takeover</a></li> 
     <li><a href="#" title="bg_homePromoOverlay">Homepage Promo Overlay</a></li> 
     <li><a href="#" title="bg_homeFeatureOverlay">Homepage Feature Overlay</a></li> 
     <li><a href="#" title="bg_homeFeatureScrollOverlay">Homepage Feature Scroll + Takeover</a></li> 
    </ul> 

    <h2>Thèmes & intégrations</h2> 
    <ul class="listing">       
     <li><a href="#" title="bg_le30">Le 30</a></li> 
     <li><a href="#" title="bg_menuCarte">Menu à la carte</a></li>       
     <li><a href="#" title="bg_intTheme">Intégration thème</a></li> 
     <li><a href="#" title="bg_intVirtuel01">Intégration papier virtuel 1</a></li> 
     <li><a href="#" title="bg_intVirtuel02">Intégration papier virtuel 2</a></li> 
    </ul> 

    <h2>Galeries</h2> 
    <ul class="listing"> 
     <li><a href="#" title="bg_gal01">St-Valentin noir & blanc</a></li> 
     <li><a href="#" title="bg_gal02">Cuisinez avec le fromage</a></li> 
     <li><a href="#" title="bg_gal03">Des fraises pour dessert</a></li> 
     <li><a href="#" title="bg_gal04">Nos meilleures recettes de homard</a></li> 
     <li><a href="#" title="bg_gal05">Jeudi [email protected]</a></li> 
    </ul> 
</div> 

我想遍历我#leftArrow和#rightArrow的ULS。我有一个覆盖页面,我用这些箭头改变了背景图片。但是,当点击这些箭头时,我无法从第一个ul传递到第二个。

这里是Jquery的

$(document).ready(function(){ 

    var current_li; 
    //OPEN OVERLAY 
    $('.innerWrap a').click(function(){ 

     var src = $(this).attr("title"); 

     current_li = $(this).parent(); 

     var text = $(current_li).text(); 
     $('#frame h2').text(text) 

     $('#projectOverlay').css({'background-image': 'url(img/' + src + '.jpg)' ,}); 


     $('#frame').fadeIn(400); 
     $('#projectOverlay').fadeIn(400); 

    }) 

    //RIGHT 
    $("#rightArrow").click(function(){ 

     if(current_li.is(":last-child")) {     
      var next_li = current_li.parents('ul').siblings().find('li').first();             
     } else { 
      var next_li = current_li.next();    
     } 

     var next_src = next_li.children('a').attr("title");    

     current_li = next_li; 
    }) 

    //LEFT 
    $("#leftArrow").click(function(){ 

     if(current_li.is(":first-child")) { 
      //var prev_li = $('.innerWrap ul li').last(); 
      var prev_li = current_li.parents('ul').siblings().find('li').last(); 
     } else { 
      var prev_li = current_li.prev(); 
     } 

     var prev_src= prev_li.children('a').attr("title");   

     current_li = prev_li; 

    }) 

}); 

任何帮助,将不胜感激!

谢谢!

+0

你能去掉无关的jQuery?这是一个很大的筛选。你可能只需要左或右,而不是两者。还要更彻底地解释你的点击功能应该做什么。 – isherwood

+0

请在您的问题中添加信息,而不是在评论中。 – isherwood

回答

0

https://jsfiddle.net/rgwst1xj/4/

编辑:解

$(document).ready(function(){ 

// I set current_li manually, so change it 
var current_li = $('a').first().parent(); 
// Use your own method to determine which ul is the current one 
var current_ul = 0; 

//RIGHT 
$("#rightArrow").click(function(){ 

    if(current_li.is(":last-child")) { 
     // you may want to be more specific with $('ul').length 
     current_ul = (current_ul + 1)%$('ul').length; 
     var next_li = current_li.parent().parent().find('ul:eq('+current_ul+')').find('li').first(); 
    } else { 
     var next_li = current_li.next();    
    } 

    var next_src = next_li.children('a').attr("title"); 

    current_li = next_li; 

    console.log(current_li.text()) 
    var text = $(current_li).text(); 
    $('#frame h2').text(text); 
}) 

//LEFT 
$("#leftArrow").click(function(){ 

    if(current_li.is(":first-child")) { 
     //var prev_li = $('.innerWrap ul li').last(); 
     current_ul = (current_ul - 1)%$('ul').length; 
     var prev_li = current_li.parent().parent().find('ul:eq('+current_ul+')').find('li').last(); 
    } else { 
     var prev_li = current_li.prev(); 
    } 

    var prev_src= prev_li.children('a').attr("title"); 

    $('#projectOverlay').animate({opacity: 0}, 200, function() { 
     $(this) 
      .css({'background-image': 'url(img/' + prev_src + '.jpg)' ,}) 
      .animate({opacity: 1}); 

      bgSize($('#projectOverlay'), function(width, height){ 
      $("#frame").css("height",height)     
      $("#projectOverlay").css("height",height); 
     });  
    });   

    current_li = prev_li; 
    console.log(current_li.text()) 
    var text = $(current_li).text(); 
    $('#frame h2').text(text); 

}) 
}); 
+0

因此,您需要在您的答案中发布您的相关代码。 – isherwood

+0

这是我的问题,它循环在第一个和第二个UL,但不是第三个。 – Phil

+0

我想出了问题,我会在一秒内发布解决方案。当在第一UL,在兄弟姐妹第一UL是第二UL和当在第二UL,在兄弟姐妹第一UL与解决方案 –