Я предполагаю, что либо ваш прослушиватель событий отправляет события в функцию маршрутизации / назначения, либо не так много событий щелчка, которые вы ищете для реализации, которые НЕ ПРЕДУСМОТРЕНЫ для этой функции.
В любом случае, вы можете сделать что-то вроде:
// Assuming we already know what the purpose of the click was, and its target
function (e) {
if (!!e.ctrlKey) { /* CTRL was held during mouse-click */ }
else { /* not held */ }
}
Что касается кнопок мыши, они довольно запутаны.
Вам должно быть хорошо, используя либо:
e.which /* 1-based: middle-button is #2 */
или
e.button /* 0-based: middle-button is #1 */
Имейте в виду, что в прошлом поддерживалась возможность выяснить, какие кнопки были ДЕЙСТВИТЕЛЬНО плохими за эти годы.Если у вас есть библиотека, которая выполняет абстрагирование, используйте это.В противном случае, кроме предоставления этой функциональности людям с более новыми браузерами или компиляции предыдущих значений кнопок и, он заканчивается синтаксическим анализом версий браузера, что никогда не бывает хорошо.