2010-10-08 4 views
0

J'ai un menu horizontal dans mon site Web, et chacun pour l'article dans le menu j'ai une image et un sous-menu. J'écris un gestionnaire d'événement pour le vol stationnaire. Je devrais cacher tous les sous-menus et images visibles avant d'afficher l'image de droite pour le menu. Mais le problème est quand je commute entre deux menus rapidement le premier devient visible après le gestionnaire pour le second exécuter pour toutes les images. Et par conséquent, les deux images deviennent visibles. Quel bordel! Voici mon code, j'ai besoin de quelque chose pour empêcher l'exécution de la fonction avant que fadeIn ou slidedown soit terminé. voici mon code js:exécution simultanée des gestionnaires d'événements dans jquery


$(function() { 

    $("#primary-menu li").hover(function(){ 

     if($("#image-menu-"+mlid).is(":visible")) 
      return 

//  hide previous image 
     $("#sub-menu div").hide() 
     $('#menu-image img').hide(); 

     var attr = $(this).attr('class'); 
     var mlid = attr.substr('5'); 


     var index = $("#primary-menu li").index(this);  

     $("#image-menu-"+mlid).fadeIn(600); 

     if($("#div-"+mlid).length) 
      $("#div-"+mlid).slideDown('fast'); 

    }); 
}); 

Répondre

1

delay devrait faire l'affaire, il y a des exemples sur leur site web.

Questions connexes