2013-03-16 145 views
2

我想要的是,如果我們點擊一​​個有兒童,子女ul(子菜單)的列表出現。標準菜單 - 我們看到的子菜單系統。我嘗試了一個不工作的代碼。大概你有更好的主意?點擊打開子菜單,jquery

http://jsfiddle.net/JeremyCh/BjTYY/2/

<div class="menu"> 
    <ul> 
    <li class="page_item page-item-2"><a href="/accueil/">Accueil</a></li> 
    <li class="page_item page-item-8"><a href="/disciplines/">Disciplines</a> 
     <ul class='children'> 
     <li class="page_item page-item-19"><a href="/disciplines/galerie/">Galerie</a></li> 
     <li class="page_item page-item-21"><a href="/disciplines/definitions/">Définitions</a></li> 
     </ul> 
    </li> 
    <li class="page_item page-item-10"><a href="/professeurs/">Professeurs</a></li> 
    <li class="page_item page-item-11"><a href="/planning/">Planning</a></li> 
    <li class="page_item page-item-12"><a href="/tarifs/">Tarifs</a> 
     <ul class='children'> 
     <li class="page_item page-item-23"><a href="/tarifs/cours/">Cours</a></li> 
     <li class="page_item page-item-25"><a href="/tarifs/location/">Location</a></li> 
     </ul> 
    </li> 
    <li class="page_item page-item-13"><a href="/contact/">Contact</a></li> 
    </ul> 
</div> 


jQuery(document).ready(function() { 
    jQuery('.menu').find('> li').click(function() { 
     jQuery('.menu > li').not(this).find('ul').slideUp(); 
     jQuery(this).find('ul').stop(true, true).slideToggle(300); 
     return false; 
    }); 
}) 
+0

在上下文中,「不起作用」是什麼意思?你期望它做什麼,它沒有做什麼,它做了什麼,你不希望它做什麼,它產生了什麼錯誤? – 2013-03-16 14:43:45

+0

好問題David。當我點擊父項時,我想要打開子菜單。實際上,我正在尋找一個標準的菜單/子菜單系統,其中子菜單在頁面加載時保持隱藏狀態,並且當我們點擊父列表項時顯示。 – Jeremy 2013-03-16 14:45:37

+0

@Jeremy - 你應該把上面的評論移到問題上,因爲它是問題的一部分而不是評論。 – Hogan 2013-03-16 14:48:34

回答

3

你去那裏..

ü分配類.menu錯誤的元素,將其分配給主UL,現在U可以據此樣式..

HTML

<ul class="menu"> 
    <li class="page_item page-item-2"><a href="#">Accueil</a></li> 
    <li class="page_item page-item-8 current_page_item"><a href="#">Disciplines</a> 
    <ul class='children'> 
    <li class="page_item page-item-19"><a href="/disciplines/galerie/">Galerie</a></li> 
    <li class="page_item page-item-21"><a href="/disciplines/definitions/">Définitions</a></li> 
    </ul> 
</li> 
<li class="page_item page-item-10"><a href="/professeurs/">Professeurs</a></li> 
<li class="page_item page-item-11"><a href="/planning/">Planning</a></li> 
<li class="page_item page-item-12"><a href="/tarifs/">Tarifs</a> 
    <ul class='children'> 
    <li class="page_item page-item-23"><a href="/tarifs/cours/">Cours</a></li> 
    <li class="page_item page-item-25"><a href="/tarifs/location/">Location</a></li> 
    </ul> 
</li> 
<li class="page_item page-item-13"><a href="/contact/">Contact</a></li> 

js

$('.menu').find('> li').click(function() { 
$('.menu > li').not(this).find('ul').slideUp(); 
$(this).find('ul').stop(true, true).slideToggle(400); 
return false; 
}); 
+0

謝謝Nikhar,那很完美。 – Jeremy 2013-03-16 22:13:54

0

嘗試從jQuery('.menu').find('> li')jQuery('.menu > li')改變你的選擇你的jQuery來jQuery('.menu').find('> ul > li')jQuery('.menu > ul > li')

從我所知道的>選擇器選擇直接孩子後代,即在這種情況下,ul,因此,李不是div.menu元素的直接子代後代。