事件上按输入JavaScript
每当我按下向上或向下按钮,我可以检查这些键被按下例如警报将在这里发射:事件上按输入JavaScript
if ((38 in keysDown)) { // Player holding up
window.alert("up button was pressed");
}
if ((40 in keysDown)) { // Player holding down
window.alert("down button was pressed");
}
但在这里,即使寿我按进入警报犯规打
if ((13 in keysDown)) { // player pushed on enter
window.alert("enter key was pressed"); // here nothing happen
}
我使用的3条线在一开始添加事件听者:
keysDown = {};
addEventListener("keydown", function (e) {keysDown[e.keyCode] = true;}, false);
addEventListener("keyup", function (e) {delete keysDown[e.keyCode];}, false);
,但由于某种原因,我不知道的输入密钥不工作 问题发生在Firefox上,在Chrome和IE上工作正常
在此先感谢。
编辑我想不通的问题,我现在用的可是没有重点,所以 输入按钮不起作用,可以ANY1告诉我如何切换焦点画布?
编辑我想不通的问题,这是我现在用犯规画布有 焦点,因此输入按钮不起作用,可以ANY1告诉我如何切换 重点是什么?
当然。
How do you set focus to the HTML5 canvas element?
或甚至更好:
1- TABINDEX:
$("#canvas")
// Add tab index to ensure the canvas retains focus
.attr("tabindex", "0")
// Mouse down override to prevent default browser controls from appearing
.mousedown(function(){ $(this).focus(); return false; })
.keydown(function(){ /* ... bla bla bla ... */ return false; });
2- CONTENTEDITABLE设置为true:
// Add content editable to help ensure the canvas retains focus
$("#canvas").attr("contentEditable", "true")
$("#canvas")[0].contentEditable = true;
源:How do I give an HTML canvas the keyboard focus using jquery?
的输入授权码是13.
这里是关于检测的按一个简单的事件方法enter键:
编辑:我编辑我的职务的东西要简单得多:
function check() {
if (window.event.keyCode == 13) {
document.write("Enter pressed");
}
}
<body onkeypress="check()">
</body>
我认为这只会在Chrome中起作用......这里当前的事件对象存储在window.event中......但这不适用于其他浏览器imho – 2012-04-20 18:38:32
也许你是对的。我正在使用基于webkit的浏览器。 – Rrjrjtlokrthjji 2012-04-20 18:40:32
在Firefox中使用event.which
,在IE中使用event.keyCode
。
在每个浏览器中都会发生这种情况吗?你注意到了哪个浏览器?你能提供一个小提琴吗? – 2012-04-20 18:30:06
我用firefox ...我需要它主要在Firefox上工作 – 2012-04-20 18:30:58
结帐这[[小提琴](http://jsfiddle.net/6SUkG/)为我在Firefox中工作...显示keyCode 13 – 2012-04-20 18:36:25