2012-01-17 130 views
0

我有follwing HTMLjQuery的顯示隱藏李和UL

<ul class="shopp_categories"> 
    <li class="current"> 
     <a class="current" href="link">Gifts For Her</a> 
     <ul class="children active" style="display: none;"> 
     <li><a>Hand Bag Holders</a></li> 
     </ul> 
    </li> 

    <li><a href="link">Gifts ForHim</a></li> 
    <li><a href="link">Innovative Gifts</a></li> 
    <li><a href="link">Jewellery</a> 
     <ul class="children" style="display: none;"> 
     <li><a>Alrun Runes</a></li> 
     </ul> 
    </li> 
    </ul> 

及以下的jQuery

jQuery(document).ready(function() { 
    $('ul ul').hide(); 
    $('ul.children active').show(); 
    $('ul.children li a').removeAttr("href"); 
    $('ul.children li > a').mouseover(function(event) { 
     $('ul ul').hide('slow'); 
     $(this).parent().find('ul').toggle('slow'); 
    }); 
}); 

我能得到孩子UL的隱瞞,但我不能讓他們過上鼠標顯示或保持開放,如果他們是活躍

回答

3

,以防止它們藏匿在激活時,你只需要一個if語句,是這樣的:

if(!$(this).hasClass('active')){ //if it doesn't have the class active 
    $(this).hide(); 
} 

關於您提到的第一個問題,當您隱藏一個元素時,它將獲得樣式display:none。那時,沒有鼠標事件可以觸發元素。您不能單擊它,將鼠標移到它上面,將鼠標移出它等,因爲它已從渲染文檔中移除。

而僅供參考,您的語法錯誤:$('ul.children active')應該是$('ul.children.active')