60

Is it possible to handle such events as:

  • Ctrl + mouse left button click;
  • Shift + mouse left button click;
  • Alt + mouse left button click by using JavaScript, jQuery or other framework.

If it is possible, please give a code example for it.

Fabrizio
  • 7,603
  • 6
  • 44
  • 104
Anton
  • 9,682
  • 11
  • 38
  • 68

3 Answers3

118

You can do something like this (jQuery for the click handler, but any framework works on the part that matters):

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

Just handle whichever you want inside an if inside the click handler like I have above.

Nick Craver
  • 623,446
  • 136
  • 1,297
  • 1,155
10

If you use JQuery plugin called hotkeys you can handle the special keys below.

$(document).bind('keydown', 'Ctrl+c', fn);
Luke
  • 821
  • 17
  • 22
Dhaval
  • 166
  • 7
9

More recently I encountered a problem with using e.ctrlKey in that, it does not work on MACs. In a Macintosh, the same effect is achieved using Command+Click.

Since most of the answers above are already assuming usage of jQuery, you can simply use the e.metaKey property which is made available by jQuery.

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
  }
});
Sunny R Gupta
  • 5,026
  • 1
  • 31
  • 40