Обработчики событий JavaScript или jQuery для "Ctrl" / "Shift" + щелчок левой кнопкой мыши
Можно ли обрабатывать такие события, как:
- Ctrl + щелчок левой кнопкой мыши;
- Shift + щелчок левой кнопкой мыши;
- Alt + щелчок левой кнопкой мыши
используя JavaScript, jQuery или другую инфраструктуру.
Если это возможно, укажите пример кода.
Ответы
Ответ 1
Вы можете сделать что-то вроде этого (jQuery для обработчика кликов, но любая фреймворк работает с той частью, которая имеет значение):
$(selector).click(function(e) {
if(e.shiftKey) {
//Shift-Click
}
if(e.ctrlKey) {
//Ctrl+Click
}
if(e.altKey) {
//Alt+Click
}
});
Просто обрабатывайте то, что вы хотите внутри if
внутри обработчика кликов, как у меня выше.
Ответ 2
Если вы используете плагин JQuery под названием hotkeys, вы можете обрабатывать специальные клавиши ниже.
$(document).bind('keydown', 'Ctrl+c', fn);
Ответ 3
Совсем недавно я столкнулся с проблемой использования 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
}
});