2012-07-23 18 views
0

我想活動類添加到所有主要類別擋在我的HTML代碼如下: -添加「主動」類主選項卡列表

<ul class="tabs"> 

    <li class="accordion"><a href="#tab1">Boo1</a> 

      <ul id="sub-nav"> 
       <li><a href="http://www.myweb.com"> Ipsum Text</a></li> 
       <li><a> Lorem text</a></li> 
       <li><a> More lorem text </a></li> 
       <li><a> Dolor Sit Amet </a></li> 
      </ul>         

    </li> 


    <li><a href="#tab2">Boo2</a></li> 
    <li><a href="#tab3">Boo3</a></li> 
    <li class="last-item"><a href="#tab4">Boo4</a></li> 

</ul>​ 

風格是這樣的: -

#sub-nav > .active {background:#AAA;} 
.tabs li a.active { background: green; } 
.tabs li a {font-size:20px;} 
#sub-nav li a {font-size:16px; margin-left:20px;} 

所以我這樣做: -

(function(){ 
    $('.tabs #sub-nav li').bind('click', function(e){ 
     var subNavList = $(this), 
      list = $('.tabs').find('li').add('.tabs a'); 
      list.removeClass('active'); 


     subNavList.addClass('active').parents('li').addClass('active').children('a').addClass('active'); 
    }); 
}());​ 

現在我唯一的問題是當點擊其他導航列表(boo2和boo3)時,沒有應用活動類。請檢查jsfiddle代碼以更好地理解。 http://jsfiddle.net/gfkM4/6/我在做什麼錯傢伙?有些人可以幫我嗎?

+0

很好的點擊不被連接到那些元素。 ''.tabs#sub-nav li'' – epascarello 2012-07-23 18:23:26

+0

@epascarello親愛的我!我不知道我有什麼問題。但我有另一個問題。請檢查這個小提琴:http://jsfiddle.net/gfkM4/8/。如何將boo1的subnav排除在綠色之外,而在點擊boo1時將其默認爲灰色? – 2012-07-23 18:32:25

回答

3

我相信這是你在找什麼(選擇點擊時也同時選擇subnav頂部導航和它的父當點擊時):

http://jsfiddle.net/gfkM4/9/

(function(){ 

    $('.tabs a').on('click', function(e){ 
     $('.tabs a').removeClass('active'); 
     $(this).addClass('active'); 
     $(this).closest('ul').closest('li').children('a').addClass('active'); 
    })  

}());​ 
+0

不是真的:(我希望Boo1只有在子列表(Ipsum Text等)被點擊時纔會被激活,就像我原來的例子一樣,我想要改變的是子列表的顏色,並且所有的主列表都會有一個綠色的背景,但子列表的顏色設置爲#aaa; – 2012-07-23 19:02:22

+0

只需將您的CSS從'#sub-nav> .active {background:#AAA;}'改爲'#sub-nav .active {background:#AAA ;}'。http://jsfiddle.net/gfkM4/10/ – scottm 2012-07-23 19:05:44

+0

是的,我的壞我基本上打開了一個錯誤的小提琴!非常感謝@scottm。有趣的是你的代碼簡潔:) – 2012-07-23 19:10:11