Я пытаюсь реализовать функциональность нажатия клавиши, которая удалит отделение, когда пользователь совершит нападки Esc
. Это работает на Firefox & IE со следующим кодом:
$("body").keypress(function(e) {
alert("any key pressed");
if (e.keyCode == 27) {
alert("escape pressed");
}
});
Если я нажал какую-либо клавишу, первое alert
отображен, и если я поразил Escape, второе alert
также отображен.
Это не работает с Chrome все же. Первое alert
всегда отображается, если я нажал какую-либо из клавиш буквы, но не, когда я поразил Escape, Вкладку, Пространство или любое из чисел.
Почему это было бы? Там какой-либо путь состоит в том, чтобы заставить Chrome отвечать на эти нажатия клавиш?
нажатие клавиши 'ESC'
e.which: 0
e.keyCode: 27
keyup 'ESC'
e.which: 27
e.keyCode: 27
<час> Для непечатаемых символов лучше используют keyup
.
Используя файл Jquery.hotkey js можно Сделать ключ Sortcut
$(document).bind('keydown', 'esc', function(){ });
Для клавиши ESC:
$(document).keydown(function(e) {
if(e.keyCode == 27) { /* Run code */ }
}
Для ключей буквы, как 'L':
$(document).keypress(function(e) {
if(e.which == 108) { }
});
Работы и в Chrome и в Firefox
После второго предупреждения добавляют также
e.preventDefault();
, Это предотвратит действие по умолчанию события, которое будет инициировано.
[еще 115] информация об этом методе здесь
Ваш код должен быть похожим
$("body").keypress(function(e) {
alert("any key pressed");
if (e.keyCode == 27) {
alert("escape pressed");
e.preventDefault();
}});