如何区分使用鼠标右键单击和物理键盘上的上下文菜单键按下?

使用此代码,我尝试在控制台中打印事件

$('#'+inputId).bind('contextmenu', function(e) {
    console.log(e);
});


我获取了上面代码的一些输出-

要使用鼠标右键单击,它是-


按钮:2
originalEvent:MouseEvent
类型:“ contextmenu”
其中:3


对于上下文菜单键,按键盘上的-


按钮:2
originalEvent:MouseEvent
类型:“ contextmenu”
其中:3


我只想在物理键盘上按下“上下文菜单键”时才执行某些操作。我该如何实现?

最佳答案

在那里的Hiya这将帮助您捕捉差异:Working Demo http://jsfiddle.net/pPnME/1/

我已经在Alienware-Chrome上对此进行了测试,当您右键单击时,您会在键盘上看到右键单击警报,反之则会在键盘上看到警报。

请注意:您可以基于which属性识别点击:http://api.jquery.com/event.which/


对于按键或鼠标事件,此属性指示特定的按键或
按下的按钮。


希望这适合事业。 :)

还要注意,有一些插件可以用来获取快捷方式,但是我建议您坚持使用基本的插件,并使用我给的演示,如果它只是要分别捕获两个事件,其余的演示都可以玩:)



/*
  1 = Left   Mousebutton
  2 = Centre Mousebutton
  3 = Right  Mousebutton
*/
$('input').mousedown(function(e) {
    if (e.which === 3) {
        alert('rightclick'); /* Right Mousebutton was clicked! */
    }
});
$('input').bind('contextmenu', function(e) {
    alert('keyboard yeah');
    //console.log(e);
});​

关于jquery - 如何区分“使用鼠标右键单击”和“物理键盘上的上下文菜单按键”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11449606/

10-11 12:03