Dropdownmenu延迟无效

时间:2012-03-18 13:50:33

标签: jquery css hover

我需要延迟我的dropdownmenu。我试图使用,hoverintent但它无法正常工作,无法找到我的错误。

我的CSS:

CSS

我的下拉:

<div id="menu" class="menu"><ul><li class="first"><a href=index.php" title="Home"     >Home</a></li>
<li><a href="index.php?id=13" title="Verein" >Verein</a><ul><li class="first"><a href="index.php?id=33" title="Vorstand" >Vorstand</a></li>
<li><a href="index.php?id=5" title="Mitglieder" >Mitglieder</a></li>
<li class="last"><a href="index.php?id=6" title="Anfahrt" >Anfahrt</a></li>
</ul></li>
<li><a href="index.php?id=7" title="Kontakt" >Kontakt</a><ul><li class="first"><a href="/content/Anmeldung_OG_Schau_17_06_2012.doc" title="Ortsgruppenschau"     >Ortsgruppenschau</a>/li>
</ul></li>
<li><a href="index.php?id=16" title="Hunde" >Hunde</a><ul><li class="first"><a href="index.php?id=10" title="Hundeschule" >Hundeschule</a></li>
<li><a href="index.php?id=9" title="Hundesport" >Hundesport</a></li>
<li class="last"><a href="index.php?id=31" title="Rassen" >Rassen</a><ul><li class="first"><a href="index.php?id=19" title="Riesenschnauzer" >Riesenschnauzer</a></li>
<li><a href="index.php?id=20" title="Schnauzer" >Schnauzer</a></li>
<li><a href="index.php?id=28" title="Zwergschnauzer" >Zwergschnauzer</a></li>
<li><a href="index.php?id=29" title="Deutscher Pinscher" >Deutscher Pinscher</a></li>
<li><a href="index.php?id=30" title="Zwergpinscher" >Zwergpinscher</a></li>
<li class="last"><a href="index.php?id=32" title="Affenpinscher" >Affenpinscher</a></li>
</ul></li>
</ul></li>
<li><a href="index.php?id=25" title="Galerie" >Galerie</a></li>
<li><a href="index.php?id=27" title="Presse" >Presse</a></li>
<li><a href="index.php?id=34" title="Termine" >Termine</a></li>
<li class="active"><a href="index.php?id=35" title="Links" >Links</a></li>
<li class="last"><a href="index.php?id=36" title="Impressum" >Impressum</a></li>
</ul></div></div>

我的电话:

$(function(){

var config = {    
     sensitivity: 3, // number = sensitivity threshold (must be 1 or higher)    
     interval: 200,  // number = milliseconds for onMouseOver polling interval    
     over: doOpen,   // function = onMouseOver callback (REQUIRED)    
     timeout: 2000,   // number = milliseconds delay before onMouseOut    
     out: doClose    // function = onMouseOut callback (REQUIRED)    
};

function doOpen() {
    $(this).addClass("hover");
    $('ul:first',this).css('visibility', 'visible');
}

function doClose() {
    $(this).removeClass("hover");
    $('ul:first',this).css('visibility', 'hidden');
    alert("test");
}

$(".menu ul li").hoverIntent(config);

$(".menu ul li ul li:has(ul)").find("a:first").append(" &raquo; ");

});

如果我通过下拉菜单查看测试,那么它找到了该功能并且没有错误,但它不起作用。我怎样才能解决这个问题?

演示:Demo

2 个答案:

答案 0 :(得分:0)

也许这就是你调用函数的顺序。

在函数doOpen和doClose

之后尝试配置
$(function(){

    function doOpen() {
        $(this).addClass("hover");
        $('ul:first',this).css('visibility', 'visible');
    }

    function doClose() {
        $(this).removeClass("hover");
        $('ul:first',this).css('visibility', 'hidden');

    }

    var config = {    
         sensitivity: 3, // number = sensitivity threshold (must be 1 or higher)    
         interval: 200,  // number = milliseconds for onMouseOver polling interval    
         over: doOpen,   // function = onMouseOver callback (REQUIRED)    
         timeout: 2000,   // number = milliseconds delay before onMouseOut    
         out: doClose    // function = onMouseOut callback (REQUIRED)    
    };

    $(".menu ul li").hoverIntent(config);

    $(".menu ul li ul li:has(ul)").find("a:first").append(" &raquo; ");

});

答案 1 :(得分:0)

三件事。

你的CSS在没有JS的情况下工作。您需要将下拉列表ul的:hover重写为.hover

在演示中,您有$(".test ul li")而不是$(".menu ul li")。因为ul有班级考试并且不是班级考试的孩子而无法工作

必须在conig中使用之前定义

doOpen和doClose。