我一直在寻找两天来回答这个上帝抛弃的问题,并且没有胜利。
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?为什么它不会起作用?而且,最重要的是,我该如何解决它?
答案 0 :(得分:25)
您必须在keyPress中使用小写p
答案 1 :(得分:9)
事件名称必须为keypress
- 小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.which键盘输入键。对于 更多细节,请阅读event.charCode on the MDC。
答案 2 :(得分:0)
你总是可以使用这个
$(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.所以检查两个