2012-04-20 66 views
0

每當我按下向上或向下按鈕,我可以檢查這些鍵被按下例如警報將在這裏發射:事件上按輸入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告訴我如何切換焦點畫布?

+2

在每個瀏覽器中都會發生這種情況嗎?你注意到了哪個瀏覽器?你能提供一個小提琴嗎? – 2012-04-20 18:30:06

+0

我用firefox ...我需要它主要在Firefox上工作 – 2012-04-20 18:30:58

+0

結帳這[[小提琴](http://jsfiddle.net/6SUkG/)爲我在Firefox中工作...顯示keyCode 13 – 2012-04-20 18:36:25

回答

0

編輯我想不通的問題,這是我現在用犯規畫布有 焦點,因此輸入按鈕不起作用,可以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?

0

的輸入授權碼是13.

這裏是關於檢測的按一個簡單的事件方法enter鍵:

編輯:我編輯我的職務的東西要簡單得多:

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

<body onkeypress="check()"> 
</body> 
+0

我認爲這隻會在Chrome中起作用......這裏當前的事件對象存儲在window.event中......但這不適用於其他瀏覽器imho – 2012-04-20 18:38:32

+0

也許你是對的。我正在使用基於webkit的瀏覽器。 – Rrjrjtlokrthjji 2012-04-20 18:40:32

0

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