2012-01-23 63 views
0

一個noob問題。答案可能很簡單,但不知何故,我無法弄清楚,需要在我的項目中繼續。垂直jquery滑下菜單保持打開

我有一個垂直導航菜單,我有一個向下滑動懸停。 但是我希望菜單一旦滑下來就保持打開狀態。 我試過刪除最後一行代碼,但是看起來不漂亮。

我試圖執行Stu Nicholls method,但沒有得到它的工作。但那是我想要的效果。

我的HTML菜單:

<nav id="verticalmenu">   
<ul> 
    <li><a class="slide" href="#">Kalendarium</a> 
    <ul class="down"> 
    <li><a href="#">Konzerte</a></li> 
    <li><a href="#">Seminare</a></li> 
    <li><a href="#">Vortraege</a></li> 
    </ul> 
</li> 
<li><a href="#">Projekte</a> 
    </ul> 

而jQuery的它:

<script type="text/javascript"> 



(function($){ 

      //cache nav 
      var nav = $("#verticalmenu"); 

      //add hovers to submenu parents 
      nav.find("li").each(function() { 
       if ($(this).find("ul").length > 0) { 


        //show subnav on hover 
        $(this).mouseenter(function() { 
         $(this).find("ul").stop(true, true).slideDown(); 
        }); 

        //hide submenus on exit 
        $(this).mouseleave(function() { 
         $(this).find("ul").stop(true, true).slideUp(); 
        }); 
       } 
      }); 
     })(jQuery); 

非常感謝!

+0

改變你的鼠標離開了點擊,它應該提供的代碼工作,打開的時候你徘徊,繼續開放,當你離開並在你點擊時崩潰,這是他們的功能後類型? –

+0

刪除'//隱藏子菜單退出'註釋後的隱藏代碼。 – Samich

+0

謝謝你們,但是這有同樣的結果 - 一切都很好,直到我將鼠標移出。那麼它就會全部攪亂。無論如何,我會進一步surach網絡......謝謝! OMG! – furby

回答

2

只是將它們隱藏在文檔加載上。沒有必要,如果檢查,jQuery不會的在內部

(function($){ 
    var nav = $("#verticalmenu"); 
     //add hovers to submenu parents 
     nav.find("li").each(function() { 
      var li_ul = $(this).find("ul"); 
       li_ul.hide(); 
       //show subnav on hover 
       $(this).mouseenter(function() { 
        li_ul.stop(true, true).slideDown(); 
       }); 
     }); 
})(jQuery); 

小提琴:http://jsfiddle.net/Redwb/3/

+0

OMG!謝謝 !!!!你是一個生命保護者!剛剛接到客戶的電話,他並不開心, - 你現在真的已經過了我的一天。 – furby

+1

我很高興我可以幫助你......不要忘記將答案標記爲已接受。 –

+0

http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work and http://meta.stackexchange.com/questions/16721/how-does-accept-rate-work可以幫助你。 –