2017-01-23 1 views
-1

Ich habe ein Navigationsmenü. Child ul Runterfahren, wenn der Elternli mit der Maus schwebt. Es gleitet auch nach oben, wenn die Maus austritt. Ich versuche jedoch, mein erstes und zweites Untermenü um 1 Sekunde zu verzögern, bevor es nach oben fährt. Ich möchte, dass das Kind für 1 Sekunde offen bleibt, nachdem die Maus gegangen ist. Aber es gleitet immer noch sofort nach oben. Was fehlt in meinem Code?Mein jQuery-Navigationsmenü wird zu schnell angezeigt

Hier ist der Link zu meinem Code. https://jsfiddle.net/naeemrind/ptbzwrzu/

$(document).ready(function(){ 
$("#menu ul li").hover(function(){ 
      $(this).find(".one").stop().slideToggle(400) 
     }); 
    }); 

    $(document).ready(function(){ 
     $("#menu ul ul li").hover(function(){ 
      $(this).find(".two").stop().slideToggle(400) 
     }); 
    }); 

Antwort

0

Sie haben keine 'handlerOut' -Funktion für den Schwebe vorgesehen(), so verwendet er die gleiche Funktion sowohl für Hover-in und schweben-out.

https://api.jquery.com/hover/

Ihren Code ändern:

$("#menu ul li").hover(
    function() { 
     $(this).find(".one").stop().slideDown(400) 
    }, 
    function() { 
     $(this).find(".one").delay(1000).slideUp(400) 
    }); 
}); 
+0

** Danke ** :) Ich bin neu in Javascript und JQuery. –

+0

Aber jetzt habe ich noch ein ** Problem **. Wenn der Zeiger 5 Mal in die UL eintritt, gleitet er genau 5 Mal nach oben und unten. Und das ist sehr nervig. –

+0

Sie müssen 'stop' sagen, um die Warteschlange zu löschen:' .find (". One"). Stop (true, false) .slideDown (400) 'https://api.jquery.com/stop/ –

Verwandte Themen