jquery - 如何区分 'right click using mouse' 和 'context menu key press on physical keyboard'

标签 jquery contextmenu keypress right-click

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

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

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

我抓取了上述代码的一些输出-

使用鼠标右键单击-

  1. 按钮:2
  2. 原始事件:MouseEvent
  3. 类型:“上下文菜单”
  4. 其中:3

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

  1. 按钮:2
  2. 原始事件:MouseEvent
  3. 类型:“上下文菜单”
  4. 其中:3

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

最佳答案

您好,这将帮助您捕捉差异:工作演示 http://jsfiddle.net/pPnME/1/

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

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

For key or mouse events, this property indicates the specific key or button that was pressed.

希望这符合原因。 :)

另请注意,很少有插件可用于获取快捷方式,但我建议坚持使用基本功能,并使用我给出的演示(如果它只是分别捕获两个事件,则其余演示都可以玩:)

代码

/*
  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 - 如何区分 'right click using mouse' 和 'context menu key press on physical keyboard',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11449606/

相关文章:

javascript - 在 Jquery 中创建一个无限循环

javascript - 在javascript的正则表达式中使用变量

javascript - HTML 文件输入 JS 事件

java - java中检测长且正常的keyPressed事件的算法

javascript - 将 JQuery 输入限制为仅先前未输入过的唯一字符的任何方法

javascript - Div 的目标 ID 未传播

javascript - 右键单击拖动?

contextmenu - 在 Atom.io 中添加上下文菜单命令

swift - 在 ContextMenu 中更改 UIImage 的弹出窗口大小?

java - 如何在主java中调用Keypress函数