jQuery accommodating both HOVER and FOCUS together (mouse and keyboard)

爷,独闯天下 提交于 2019-12-07 22:10:41

问题


I'm building a mega menu where I want to be able to trigger the menu via both a hover (using the mouse) and focus (such as tabbing to it via the keyboard).

This is what I'm presently doing:

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

This works, but am wondering if that's the ideal way to handle both keyboard and mouse interactions together.


回答1:


you can use the bind method to bind multiple events to one action i.e.

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



回答2:


The answer to your problem is a UI design decision.

  • Should mouse hover or tabbing always take precedence over the other?
  • Or should it be time related where the most recent even takes precedence?
  • The opposite would to maintain the menu as open and disable other events until the menu is closed.

The way my Mac OS seems to work is the most recent event. Perhaps some web designers decided to go a different route though?



来源:https://stackoverflow.com/questions/2052366/jquery-accommodating-both-hover-and-focus-together-mouse-and-keyboard

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!