2017-09-03 4 views
0

En regardant Ben Kemens jquery-menu-aim, je suis tombé sur un exemple au codepen.Ben Kamens jQuery Menu Objectif: Le sous-menu ne réapparaîtra pas après sa disparition

Cette fonction (codepen) fonctionne et permet à l'utilisateur de passer du menu principal au sous-menu MAIS si vous vous éloignez complètement du menu, le sous-menu continue de s'afficher, le sous-menu ne disparaît pas (affichage: aucun).

Alors, je recréé le même exemple à codepen sur JsFiddle et changé le Javascript

de:

$(document).click(function() { 
    $('a.hover').removeClass('hover'); 
    $('.popover').css('display', 'none'); 
} 

à:

$(document).click(function() { 
    $('a.hover').removeClass('hover'); 
    $('.nav ul ul').css('display', 'none'); 
} 

Maintenant, si vous cliquez n'importe où sur le web page, en dehors du menu/sous-menu, le sous-menu disparaît comme il se doit.

Problème: Le sous-menu ne réapparaît pas si vous survolez de nouveau le menu principal.

Comment résoudre ce problème? Edit: Existe-t-il un jQuery/javery-menu secondaire?

+0

vous ajoutez une classe de vol stationnaire sur un clic, il me semble erroné de –

+0

Si je supprime la classe de vol stationnaire, le menu principal serait toujours sur un état de vol stationnaire, qui est la couleur de fond des séjours à l'état de vol stationnaire alors que la le sous-menu disparaît, je l'ai essayé mais le hover n'est pas ce que je regarde. –

+0

vous supprimez entièrement la classe hover donc il ne fonctionnera plus jamais. Cela peut être réalisé en utilisant simplement css. : focus et: planer. il n'y a pas besoin de js du tout. –

Répondre

0

Je pense que ce que vous voulez besoin enter et exit au lieu de activate et deactivate. Avez-vous lu le documentation?

Voici your Fiddle Updated.

$menu.menuAim({ 
    enter: activateSubmenu, 
    exit: deactivateSubmenu 
}); 
+0

Cela ne fonctionne pas. Au moment où vous essayez de déplacer votre souris du menu principal "1" au sous-menu "7" le sous-menu disparaît. Vérifiez s'il vous plaît. –

+0

C'est parce que vous sortez du menu. Vous pouvez utiliser un timeout dans la fonction de sortie afin que le menu se ferme quelques ms après une sortie ... Vous laissant le temps d'aller de 1 à 7. J'ai mis à jour le Fiddle. –

+0

Merci ... Désolé je n'ai pas lu la documentation mais j'aurais dû. Merci encore. –