В событиях – keydown()
, keyup()
, keypress()
можно получить нажатые клавиши в шести свойствах. Получить их можно из объекта события:
Результат нажатия клавиши р:
key
– содержит символ нажатой клавиши,keyCode
– код клавиши (не зависит от регистра и раскладки клавиатуры).
С помощью них можно отследить одну нажатую клавишу:
$(document).keyup(function(e) {
$('#result').append(e.key + ', код: ' + e.keyCode + '<br>');
console.dir(e);
});
На основе кодов можно повесить обработчики на определенные клавиши.
Клавиша Esc:
$(document).keyup(function(e) {
if (e.key === "Escape" || e.keyCode === 27) {
alert('Нажата клавиша Escape');
}
});
Клавиша Backspace:
$(document).keyup(function(e) {
if (e.key === "Backspace" || e.keyCode === 8) {
alert('Нажата клавиша Backspace');
}
});
Следующие свойства показывают состояния управляющих клавиш (true
/false
):
ctrlKey
– нажат ли Ctrl,altKey
– нажат ли Alt,metaKey
– нажат ли Win или cmd,shiftKey
– нажат ли Shift.
Примеры отслеживания комбинации клавиш:
Ctrl + стрелки ← →:
$(document).keyup(function(e) {
if (e.ctrlKey && e.keyCode === 37) {
alert('Нажаты Ctrl и ←');
}
if (e.ctrlKey && e.keyCode === 39) {
alert('Нажаты Ctrl и →');
}
});
Alt + Буква:
$(document).keyup(function(e) {
if (e.altKey && e.keyCode === 67) {
alert('Нажаты Alt и C');
}
});
Ctrl + Shift + Пробел:
$(document).keyup(function(e) {
if (e.ctrlKey && e.shiftKey && e.keyCode === 32) {
alert('Нажаты Ctrl, Shift и пробел');
}
});