2010-08-12 4 views
0

J'ai un menu déroulant, qui agit de manière erratique en ce que parfois si je feuillette trop rapidement à travers elle, il glisse de haut en bas peut-être 4 ou 5 fois. À d'autres moments, si je passe la souris dessus avant que le chargement se termine correctement, le menu glissera et cela deviendra son état «normal», si je le survole, il glisse avant que je puisse cliquer sur les éléments du menu.jquery slidePasser le menu?

Voici le code:

$(document).ready(function(){ 
var opened = false; 
$("#menu_box").hover(function(){ 

    if(opened){ 
    $("#menu_box").animate({"top": "+=97px"}, "200"); 
    } 

    else{ 
    $("#menu_box").animate({"top": "-=97px"}, "200"); 
    } 


    $("#menu_content").slideToggle("200"); 
    $("#menu_tab .close").toggle(); 
    opened = !opened; 


}); 
}) 

Le code était à l'origine une fonction de clic, plutôt que de vol stationnaire, donc j'ai essayé le modifier à ce qui suit:

$(document).ready(function(){ 
$("#menu_box").hover(function(){ 

    $("#menu_box").toggle(function(){ 

    $("menu_box").animate({"top": "-=97px"}, "200"); 
    $("#menu_content").slide("200"); 

      }); 
}); 
}); 

Mais que vient de faire le menu fondu de droite à gauche - ne glisse pas du tout.

Où est-ce que je me trompe? TIA!

+0

Pouvez-vous poster un exemple plus complet avec le code HTML et JavaScript? Merci! –

Répondre

1

Fixé avec moustache de liaison/mouseleave au lieu de stationnaire!