2010-02-03 9 views
1

J'utilise le populaire plugin hoverIntent jQuery pour un menu déroulant.jquery hoverIntent et le déclenchement du clavier sur le focus

http://cherne.net/brian/resources/jquery.hoverIntent.html

Je joins à la liste des articles:

$myMenuOfLIs 
    .hoverIntent(megaConfig) 

Cela fonctionne comme prévu: Si la souris I sur la LI, hoverIntent est déclenchée et affiche le menu.

Chaque LI a également une étiquette d'ancrage (lien). J'aimerais pouvoir avoir un onglet de personne sur le lien (focus), puis déclencher le menu. C'est pour faire fonctionner le menu via le clavier.

J'ai essayé différents réglages, mais aucun ne semble fonctionner:

$myMenuOfLIs 
    .hoverIntent(megaConfig) 
    .find('a:first') 
     .hoverIntent(megaConfig) 

 

$myMenuOfLIs 
    .hoverIntent(megaConfig) 
    .find('a:first') 
     .hover() 

Et même ce gâchis:

$myMenuOfLIs 
    .hoverIntent(megaConfig) 
    .find('a:first') 
     .focus(function(){ 
      $(this).parent().hover(function(){ 
       $(this).hoverIntent(megaConfig) 
      }) 
     }) 

Quelqu'un at-il utilisé hoverIntent avec clavier/focus événements? Ma syntaxe ou ma logique est-elle incorrecte?

MISE A JOUR/SOLUTION:

Je fouillais dans la logique hoverIntent et réalisé que, lui-même, est déclenchement de la fonction pour afficher/masquer le menu. La solution à mon problème particulier est de ne pas déclencher hoverIntent via un autre événement, mais d'appeler simplement les fonctions que hoverIntent appelle directement via mon événement focus. Sorte d'évident en rétrospective.

Répondre

0

Avez-vous lié des événements clavier (keyUp, keypress ou keyDown) à ces éléments associés? Je n'ai pas utilisé ce plugin, mais il semble que le plugin lie uniquement l'événement hover aux éléments qu'il crée. Vous devrez peut-être lier explicitement les événements de clavier aux éléments que vous souhaitez déclencher. Dans le gestionnaire de l'événement clavier, vous devez vérifier et voir si la touche appuyée par l'utilisateur est un onglet. Vous devrez également sauvegarder l'état en quelque sorte (menu actif actuellement, etc., bien que vous puissiez déléguer cela au plugin lui-même - juste en devinant - n'a pas utilisé ce plugin auparavant!).

Questions connexes