2

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

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

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

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

对于使用鼠标右键单击它是 -

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

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

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

我只想在物理键盘上按下“上下文菜单键”时执行一些操作。我该如何做到这一点?

4

2 回答 2

2

您好,这将帮助您捕捉差异:工作演示 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);
});​
于 2012-07-12T10:23:46.623 回答
0

您还可以检查是否按下键keyPressed是事件。

如果不是,是鼠标事件,如果是,是上下文菜单键

编辑: contextMenu 的键码是 93

于 2012-07-12T10:16:13.347 回答