JavaScript或jQuery事件处理程序用于“Ctrl” /“Shift” +鼠标左键单击

60

是否可以通过使用JavaScript、jQuery或其他框架来处理以下事件:

  • Ctrl + 鼠标左键单击;
  • Shift + 鼠标左键单击;
  • Alt + 鼠标左键单击。

如果可以,请给出一个代码示例。

3个回答

118

你可以像这样做(jQuery用于单击处理程序,但任何框架都适用于重要部分):

$(selector).click(function(e) {
  if(e.shiftKey) {
    //Shift-Click
  }
  if(e.ctrlKey) {
    //Ctrl+Click
  }
  if(e.altKey) {
    //Alt+Click
  }
});

只需在单击处理程序内部,像我上面那样使用if来处理您想要的内容即可。


10
如果你使用名为hotkeys的 JQuery 插件,你可以处理下面的特殊按键。
$(document).bind('keydown', 'Ctrl+c', fn);

9

最近我遇到了一个问题,就是在MAC上使用e.ctrlKey会失效。

在Macintosh上,可以通过 Command+点击 来达到相同的效果。

既然上面的大多数答案都假设使用jQuery,因此您可以简单地使用由jQuery提供的 e.metaKey 属性。

例如:

$(selector).click(function(e) {
  if(e.shiftKey) {
    //Shift-Click
  }
  if(e.metaKey) {
    //Ctrl+Click on Windows & Command+Click on Mac.
  }
  if(e.altKey) {
    //Alt+Click
  }
});

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接