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

Ant*_*ton 59 javascript jquery events

是否可以处理以下事件:

  • Ctrl +鼠标左键单击;
  • Shift +鼠标左键单击;
  • Alt+鼠标左键单击使用JavaScript,jQuery或其他框架.

如果可能,请给出一个代码示例.

Nic*_*ver 116

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

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

只需if在上面的点击处理程序内处理您想要的任何内容.


小智 9

如果你使用名为热键的 JQuery插件,你可以处理下面的特殊键.

$(document).bind('keydown', 'Ctrl+c', fn);
Run Code Online (Sandbox Code Playgroud)


Sun*_*pta 8

最近我遇到了使用的问题e.ctrlKey,它在MAC上不起作用.在Macintosh中,使用Command + Click可以实现相同的效果.

由于上面的大多数答案已经假定使用了jQuery,因此您可以简单地使用e.metaKeyjQuery提供的属性.

例如

$(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
  }
});
Run Code Online (Sandbox Code Playgroud)