2011-04-07 48 views
0

我想實現一個使用jquery和hoverintent的水平下拉菜單。我幾乎已經知道了,但是當您將鼠標從包含下拉鍊接的「li」移動到topnav中的另一個「li」時,菜單就會停留在那裏。水平下拉菜單使用jquery和hoverintent

目標:
單擊鼠標右鍵觸發下拉菜單
- 菜單高度擴展其推動網頁內容下推
- 如果您移動鼠標關閉子菜單或-submenu出現
鏈接關閉觸發器li,菜單應該消失

現在,只要鼠標位於菜單上的任何位置,子菜單仍然可見。

我試着在這裏修改代碼,但我的工作不像這個例子,我不知道爲什麼。
HoverIntent jQuery plugin initiated by a click event

我的HTML:

<div id="menu"> 
<ul id="topnav"> 
    <li class="border"><a class="topnavlink" href="#">Main Link</a></li> 
    <li class="border"><a class="topnavlink" href="#">Main Link</a></li> 
    <li class="border"><a class="topnavlink" href="#">Main Link</a></li> 
    <li class="border"><a class="topnavlink" href="#">Main Link</a> 
    <ul id="subnav"> 
     <li><a class="subnavlink" href="#">Drop Down Link</a></li> 
     <li><a class="subnavlink" href="#">Drop Down Link</a></li> 
     <li><a class="subnavlink" href="#">Drop Down Link</a></li> 
     <li><a class="subnavlink" href="#">Drop Down Link</a></li> 
     <li><a class="subnavlink" href="#">Drop Down Link</a></li> 
     <li><a class="subnavlink" href="#">Drop Down Link</a></li> 
     <li><a class="subnavlink" href="#">Drop Down Link</a></li> 
     <li><a class="subnavlink" href="#">Drop Down Link</a></li> 
     <li><a class="subnavlink" href="#">Drop Down Link</a></li> 
    </ul> 
    </li> 
    <li class="border"><a class="topnavlink" href="#">Main Link</a></li> 
    <li class="border"><a class="topnavlink" href="#">Main Link</a></li> 
    <li class="border"><a class="topnavlink" href="#">Main Link</a></li> 
    <li class="noborder"><a class="topnavlink" href="#">Main Link</a></li> 
</ul> 
</div> 

MY JQUERY:

function slideDown() { 
    $(this).click(function() { 
     $("#menu").stop().animate({height:"68px"}, 200); 
     $("ul#subnav").slideDown(200) 
    }); 
    } 

function slideUp() { 
    $("ul#subnav").slideUp(200); 
    $("#menu").stop().animate({height:"40px"}, 200); 
    } 

$("ul#topnav").hoverIntent({ 
    sensitivity: 7, 
    interval: 100, 
    over: slideDown, 
    timeout: 500, 
    out: slideUp 
}) 

回答