2010-04-06 56 views
2

我想循環遍歷所有包含標籤的四個li元素,將適當的類設置爲「活動」並移除「活動」類。我在通過jQuery解決如何實現這個方面遇到了一些麻煩。 HTML:循環使用四個列表元素,應用「活動」類

<ul class="liveMenu"> 
<li id="leftScroll"></li> 
<li id="liveButton_1"><a class="buttons" href="#featured_1"></a></li> 
<li id="liveButton_2"><a class="buttons" href="#featured_2"></a></li> 
<li id="liveButton_3"><a class="buttons" href="#featured_3"></a></li> 
<li id="liveButton_4"><a class="buttons" href="#featured_4"></a></li> 
<li id="rightScroll"></li> 
</ul> 

的jQuery:

var index = 0; 
$("#rightScroll").click(function(){ 

if(index != 3){ 
    index++; 
} else { 
    index = 0; 
} 
    //this part is untested, it should work though 
    $("a.active").removeClass("active"); 
//this is where I am getting hung up 
    //I need something like... 

    $.each("li.buttons", function(i){ 
     if(i == index){ 
      $(this).addClass("active"); 
     } 
    }); 

}); 

$("#leftScroll").click(function(){ 
if(index != 0){ 
    index--; 
} else { 
    index = 3; 
} 

    $.each("li.items", function(i){ 
     if(i == index){ 
      $(this).addClass("active"); 
     } 
    }); 
}); 

任何幫助,將不勝感激。謝謝。

回答

4

貌似矯枉過正一點點對我說:

$('#rightscroll').bind('click', function(e){ 
    var next = $(this).next('li'); 

    if(next){ 
    $('.active').removeClass('active'); 
    next.addClass('active');   
    } 
    else{ 
    // maybe select first li element here (index 0) 
    }  
}); 

,爲leftscroll相同的邏輯。請記住,您必須在頁面上準備一個 li元素「活動」類。

+0

看起來不錯,這就是爲什麼我喜歡這樣 - 我總是過分複雜的東西!謝謝! – 2010-04-06 12:47:05

+0

歡迎,我調整了刪除部分。應該現在工作。 – jAndy 2010-04-06 13:05:55