2013-05-06 88 views
1

我有這種結構的菜單:jQuery的:只顯示UL與孩子LI設置爲類=活躍

<ul id="accordion"> 
<li><a href="#">Books</a> 
    <ul> 
    <li><a href="thrillers.html">Thrillers</a></li> 
    <li><a href="scifi.html">Sci-fi</a></li> 
    <li><a href="nf.html">Non-fiction</a></li> 
    </ul> 
</li> 
<li><a href="#">Games</a> 
    <ul> 
    <li><a href="rpg.html">RPG</a></li> 
    <li><a href="sim.html">Simulations</a></li> 
    <li><a href="action.html">Action</a></li> 
    </ul> 
</li> 
</ul> 

(等)

現在,我們的人點擊「 RPG「我希望遊戲子菜單在RPG頁面上打開。所以,我決定一個類添加到選定李:

... 
<ul> 
    <li class="active"><a href="rpg.html">RPG</a></li> 
    <li><a href="sim.html">Simulations</a></li> 
    <li><a href="action.html">Action</a></li> 
</ul> 
... 

現在,我試圖做的是有jQuery的找到UL一類=「激活」,然後打開該UL 。

我只是這個jQuery:

​​

我在onLoad部分,只需要經過什麼有一個我想打開?

回答

2

這可能會幫助:

$('#accordion > li > ul > li.active').parent().slideDown('fast'); 
+0

太棒了,謝謝。看起來很簡單,但我沒有使用>字符。所以,這就是爲什麼我沒有成功。再次感謝。 – user2353495 2013-05-06 10:39:50

2

嘗試獲得直接子>活躍李:

$(document).ready(function() { 
    $('#accordion li').children('ul').slideUp('fast'); //<--hide all child uls 
    $('#accordion > li').click(function() { ///<---perform a click event on li 
     $(this).addClass('active').siblings('li').removeClass('active'); //<--add active class to the clicked element and remove from other siblings li 
     $(this).siblings('li').find('ul').slideUp('fast'); // <---find the ul in the siblings and slide those up 
     $('> ul', this).slideDown('fast'); // <--then perform the slideDown 
    }); 
}); 

FIDDLE DEMO你可以試試這個了。