2011-11-22 52 views
5

有人可以幫助代碼。jQuery顯示子菜單,如果父母被點擊

我想僅在子菜單父母被點擊時才顯示子菜單。

HTML

<ul> 
<li><a href="#">Item</a></li> 
<li><a href="#">Item</a> 
    <ul class="sub-menu"> 
     <li><a href="#">Submenu</a></li> 
     <li><a href="#">Submenu</a></li> 
    </ul> 
</li> 
<li><a href="#">Item</a></li> 
<li><a href="#">Item</a> 
    <ul class="sub-menu"> 
     <li><a href="#">Submenu</a></li> 
     <li><a href="#">Submenu</a></li> 
    </ul> 
</li> 
<li><a href="#">Item</a></li> 
</ul> 

所以,如果你點擊父子菜單會顯示。

這裏是小提琴鏈接 - http://jsfiddle.net/KhNCV/1/

回答

1

這裏的your example working。目前尚不清楚爲什麼您需要a標籤,因爲您可以在CSS中使用光標:指針來使li顯示爲可點擊。我會假設你想要在IE瀏覽器上做一些漂亮的懸停在CSS上?如果不是,可以通過刪除它們來簡化。

而不是在.submenu上做hide(),你應該使用CSS(用DOM解析而不是onReady/load)。

.sub-menu { display: none; } 

然後這裏是你的代碼來切換菜單:

$('ul li a').click(function() { 
    $(this).parent().find('ul.sub-menu').toggle(); 
    return false; 
}); 
+0

,但如何隱藏上一個子菜單,因爲現在都顯示 –

1
$('li a').click(
function() { 
    $(this).next().slideToggle(); 
}) 
0

試試這個

$(function(){ 

    //Hide all the sub menus 
    $('.sub-menu').hide(); 

    $("li:has(ul)").click(function(){ 
     //Find the child ul and slideToggle 
     $(this).children("ul").slideToggle(); 
    }); 
}); 
相關問題