JQuery acomodando o mouse e o foco juntos (mouse e teclado)
-
20-09-2019 - |
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.
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