Ответ 1
Вы должны использовать строчные буквы p в keyPress
Я искал два дня для ответа на эту проблему, и ни в коем случае не превалировал.
addEventListener("keyPress", myEventHandler)
ничего не будет работать.
Вот код, который я использую:
$(document).ready(function(){
window.addEventListener("keyPress", myEventHandler, false);
});
function myEventHandler(e){
var keyCode = e.keyCode;
if(keyCode == 88){
console.log("You pressed W!");
alert("You pressed W!");
}
};
При смене моего ключа W ничего не происходит. Нет предупреждений, никаких сообщений консоли, ничего.
Я что-то делаю неправильно? Разблокирует ли jQuery addEventListener? Почему это не работает? И, самое главное, как я могу это исправить?
Вы должны использовать строчные буквы p в keyPress
Имя события должно быть keypress
- small p
window.addEventListener("keypress", myEventHandler, false);
Демо: Fiddle
Кроме того, поскольку вы используете jQuery, используйте решение jQuery, например
//no need to use dom ready since the event is added to window
$(window).keypress(function (e) {
//use e.which
var keyCode = e.which;
console.log(e, keyCode, e.which)
if (keyCode == 88) {
console.log("You pressed W!");
//alert("You pressed W!");
}
})
Демо: Fiddle
Свойство event.which нормализует event.keyCode и event.charCode. Рекомендуется следить за событием. Для ввода клавиатуры. Для более подробно, читайте о event.charCode на MDC.
Вы всегда можете использовать этот
$(document).keypress(function(e) {
var keyCode = e.keyCode;
if(keyCode == 87 || keyCode == 119){
console.log("You pressed W!");
alert("You pressed W!");
}
});
И да W - 87, w - 119. Поэтому проверьте оба