jQuery兼容HOVER和FOCUS(鼠标和键盘)

时间:2010-01-12 21:04:22

标签: jquery hover keyboard-events

我正在构建一个大型菜单,我希望能够通过悬停(使用鼠标)和焦点(例如通过键盘对其进行跳转)来触发菜单。

这就是我现在正在做的事情:

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

这有效,但我想知道这是否是同时处理键盘和鼠标交互的理想方式。

2 个答案:

答案 0 :(得分:10)

你可以使用bind方法将多个事件绑定到一个动作,即

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

答案 1 :(得分:0)

您的问题的答案是UI设计决策。

  • 鼠标悬停或标签是否总是优先于另一个?
  • 或者它应该是时间相关的,最近的甚至优先?
  • 相反的做法是将菜单保持为打开状态并禁用其他事件,直到菜单关闭。

我的Mac OS似乎工作的方式是最近的事件。也许一些网页设计师决定采用不同的路线?