Обработчики событий JavaScript или jQuery для "Ctrl" / "Shift" + щелчок левой кнопкой мыши - PullRequest
58 голосов
/ 21 марта 2010

Возможно ли обрабатывать такие события как:

  • Ctrl + щелчок левой кнопкой мыши;
  • Shift + щелчок левой кнопкой мыши;
  • Alt + щелчок левой кнопкой мыши с помощью JavaScript , jQuery или других структур.

Если это возможно, приведите пример кода для него.

Ответы [ 3 ]

114 голосов
/ 21 марта 2010

Вы можете сделать что-то вроде этого (jQuery для обработчика кликов, но любой фреймворк работает на той части, которая имеет значение):

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

Просто обращайтесь с тем, что вам нужно, внутри if внутри обработчика щелчка, как у меня выше.

9 голосов
/ 21 марта 2010

Если вы используете плагин JQuery под названием горячие клавиши , вы можете обрабатывать специальные клавиши ниже.

$(document).bind('keydown', 'Ctrl+c', fn);
7 голосов
/ 16 мая 2015

Совсем недавно я столкнулся с проблемой использования e.ctrlKey, которая не работает на MAC. В Macintosh тот же эффект достигается с помощью Command + Click.

Поскольку большинство приведенных выше ответов уже предполагают использование jQuery, вы можете просто использовать свойство e.metaKey, доступное в jQuery.

, например

$(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
  }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...