Javascript onkeyup 和 onkeydown 没有捕捉到任何东西
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/4772583/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-23 14:01:03 来源:igfitidea点击:
onkeyup and onkeydown not catching anything
提问by CyanPrime
Can someone tell me whats going on? My console isn't throwing any exceptions.
有人可以告诉我这是怎么回事吗?我的控制台没有抛出任何异常。
function onKeyDown(){
var e = event.keyCode;
//if (e==87 /*w*/){
up = true;
throw('up');
//}
if (e==65 /*a*/){
left = true;
}
if (e==83 /*s*/){
down = true;
}
if (e==68 /*d*/){
right = true;
}
}
function onKeyUp(){
var e = event.keyCode;
//if (e==87 /*w*/){
up = false;
throw('up');
//}
if (e==65 /*a*/){
left = false;
}
if (e==83 /*s*/){
down = false;
}
if (e==68 /*d*/){
right = false;
}
}
Okay, so that was the javascript, and this is the html:
<body>
<input id="ss" type="button" value="start/stop" />
<div id="container" style="border:1px solid; cursor:none; width:480px; height:320px;">
<canvas id="canvas" width="480" height="320" onkeyup="onKeyUp();" onkeydown="onKeydown();">
Canvas not displaying.
</canvas>
</div>
</body>
Edit: current code:
window.onload = function(){ init(); };
window.onload = function(){ init(); };
function init(){
initSettings();
initImages();
document.getElementById('canvas').onkeydown = function(event) {
var e = event.keyCode;
//if (e==87 /*w*/){
up = true;
throw('up');
//}
if (e==65 /*a*/){
left = true;
}
if (e==83 /*s*/){
down = true;
}
if (e==68 /*d*/){
right = true;
}
}
回答by thirtydot
You should be doing something like this:
你应该做这样的事情:
document.onkeydown = function(event) {
...
}
document.onkeyup = function(event) {
...
}
And get rid of:
并摆脱:
onkeyup="onKeyUp();" onkeydown="onKeydown();"
The quick test page I made which works:
我制作的快速测试页面有效:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript">
document.onkeydown = function(event) {
event = event || window.event;
var e = event.keyCode;
//if (e==87 /*w*/){
up = true;
throw('up');
//}
if (e==65 /*a*/){
left = true;
}
if (e==83 /*s*/){
down = true;
}
if (e==68 /*d*/){
right = true;
}
}
document.onkeyup=function(event) {
event = event || window.event;
var e = event.keyCode;
//if (e==87 /*w*/){
up = false;
throw('up');
//}
if (e==65 /*a*/){
left = false;
}
if (e==83 /*s*/){
down = false;
}
if (e==68 /*d*/){
right = false;
}
}
</script>
</head>
<body>
<input id="ss" type="button" value="start/stop" />
<div id="container" style="border:1px solid; cursor:none; width:480px; height:320px;">
<canvas id="canvas" width="480" height="320">
Canvas not displaying.
</canvas>
</div>
</body>
</html>