Pergunta

Estou construindo um mega menu, onde quero acionar o menu por meio de um pairar (usando o mouse) e o foco (como a tabulando através do teclado).

Isso é o que estou fazendo atualmente:

$(".megaMenu-trigger").focus(function (){$(this).hover()});
$(".megaMenu-trigger").hover(function(){
    // do the stuff
});

Isso funciona, mas estou me perguntando se essa é a maneira ideal de lidar com as interações do teclado e do mouse juntos.

Foi útil?

Solução

Você pode usar o método de ligação para ligar vários eventos a uma ação, ou seja,

$('.megaMenu-trigger').bind("mouseenter focus mouseleave", 
        function(event) { console.log(event.type); }); 

Outras dicas

A resposta para o seu problema é uma decisão de design da interface do usuário.

  • O mouse o mouse ou a tabagem deve sempre ter precedência sobre o outro?
  • Ou deveria ser relacionado ao tempo onde o mais recente até tem precedência?
  • O oposto iria manter o menu como aberto e desativar outros eventos até que o menu seja fechado.

A maneira como meu Mac OS parece funcionar é o evento mais recente. Talvez alguns web designers tenham decidido seguir uma rota diferente?

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top