当我悬停它时,为什么我的jQuery下拉隐藏?

时间:2010-03-09 19:59:36

标签: jquery drop-down-menu

我有这个用jQuery制作的下拉菜单(第一个回答已编辑但仍无法正常工作 :()

var currentDrop = null;
var dropTimer;
$(document).ready(function() {
    $("ul#menu > li").mouseenter(function(){
    if(currentDrop) hideDrops();
    currentDrop = $(this).children("ul");
    currentDrop.show();
    }).mouseleave(function() {
        dropTimer = setTimeout("hideDrops()",500);
        });

$("ul#menu li ul li").mouseenter(function() {
    clearTimeout(dropTimer);
    }).mouseleave(function() {
        dropTimer = setTimeout("hideDrops()",500);
        });

});

function hideDrops(){
    if(currentDrop) {
        currentDrop.hide();
        currentDrop = null;
    }
}  

它包含的列表是使用wordpress-snippet生成的(不是我希望的问题!):

<ul id="menu">
<?php wp_list_pages("title_li=&depth=2&exclude=2");?>
</ul>

我无法理解的是,当我将鼠标悬停时,为什么sub-ul会隐藏,因为currentDrop设置为null,因此不会“激活”并且不应该使用hide-function。怎么办?

可以在此临时站点上看到错误:   gadefodbold.nicolund.dk

1 个答案:

答案 0 :(得分:3)

而不是悬停,你应该使用mouseenter和mouseleave

我之前遇到过同样的问题并使用mouseenter / mouseleave修复它。

http://api.jquery.com/mouseleave/