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

时间:2010-03-21 00:38:47

标签: javascript jquery events

是否可以处理以下事件:

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

如果可能的话,请给出一个代码示例。

3 个答案:

答案 0 :(得分:114)

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

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

只需处理点击处理程序中if内的任何内容,就像我上面一样。

答案 1 :(得分:9)

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

$(document).bind('keydown', 'Ctrl+c', fn);

答案 2 :(得分:7)

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

由于上面的大多数答案都已经假定使用了jQuery,你可以简单地使用jQuery提供的e.metaKey属性。

e.g。

$(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
  }
});