按enter javascript时发生的事件

按enter javascript时发生的事件,javascript,event-listener,Javascript,Event Listener,无论何时按下向上或向下按钮,我都可以检查这些键是否被按下,例如,此处将触发警报: 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 ((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上运行良好

提前谢谢

编辑我解决了问题,我使用的画布没有焦点,
所以“回车”按钮不起作用,有人能告诉我如何切换焦距吗

回车键代码是13

以下是一个简单的事件方法,用于检测按下enter键的情况:

编辑:我用更简单的东西编辑了我的文章:

    function check() {
        if (window.event.keyCode == 13) {
            document.write("Enter pressed");
        }
    }

<body onkeypress="check()">
</body>
函数检查(){
if(window.event.keyCode==13){
文件。写入(“按Enter键”);
}
}

在Firefox中使用
event.which
,在IE中使用
event.keyCode

编辑我找出了问题所在,我使用的画布没有 对焦,所以回车键不起作用,有人能告诉我如何切换吗 焦点

当然可以。

或者更好:

1-选项卡索引:

$("#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; });
// Add content editable to help ensure the canvas retains focus
$("#canvas").attr("contentEditable", "true")
$("#canvas")[0].contentEditable = true;
2-将contentEditable设置为true:

$("#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; });
// Add content editable to help ensure the canvas retains focus
$("#canvas").attr("contentEditable", "true")
$("#canvas")[0].contentEditable = true;

来源:

是否每个浏览器都会出现这种情况?你注意到了哪个浏览器?你能提供一把小提琴吗?我用的是火狐。。。我需要它主要在firefoxcheckout上工作这在firefox中对我有效。。。显示keyCode 13让我猜猜:您试图在
中捕获enter键?在小提琴中也适用,但在我使用代码时不适用。我认为这只适用于Chrome。。。此处当前事件对象存储在窗口中。事件。。。但这在其他浏览器中不起作用