2012-01-23 46 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可以帮助你。 –