0
我正在編寫一個小javascript應用程序,我需要控制屏幕事件(圖像外觀)。例如,如果image_1出現在屏幕上,我需要按一個鍵(例如右箭頭),如果image_2出現,我需要按另一個鍵(例如左箭頭)。如果兩者同時出現,我需要按兩個鍵。在同時按下兩個鍵後的javascript事件的奇怪行爲
問題是,如果我在同一時間按下兩個鍵,那麼不會啓動更多按鍵事件,我的意思是當下一個圖像出現時,我按下一個鍵但沒有javascript事件。
我使代碼簡單,您可以嘗試:提前
<html lang="es">
<head>
<meta charset="utf-8">
<title>Test1</title>
<script>
function addE() {
if (document.addEventListener) {// standard W3C DO
document.addEventListener("keydown",test1,false);
}
}
// ejemplo equivalente para quitar el evento
function removeE() {
if (document.removeEventListener) {// standard W3C DOM
document.removeEventListener("keydown",test1,false);
}
}
function test1 (e) {
alert('test');
if (!e) var e = window.event;
switch (e.keyCode) {
case 39:
alert(e.keyCode);
break;
case 37:
alert(e.keyCode);
break;
default:
alert(e.keyCode);
}
}
window.onload = function() {
addE();
alert('Listener added');
}
</script>
</head>
<body>
</body>
</html>
感謝
正如你可以看到,如果你按任意鍵,它會出現一個警告,表明你在「test1」和KeyCode。如果你同時按兩次,你會得到:測試 - 測試 - 鍵碼(1) - 鍵碼(2),然後你可以按任意鍵,你什麼也沒有得到 – DaniG 2013-04-05 10:47:24
我不會用警報來測試這個。 ... 同時按下2個鍵將不會執行任何操作,因爲只有其中一個鍵(系統讀取的第一個鍵)會觸發該警報,從而使之後的任何代碼都爲空(警報基本上阻止任何發生),切換到console.logs來測試。 – 2013-04-05 10:49:47
我同意,如果您需要使用窮人的調試工具,請使用'console.log()'而不是'alert()'。 – 2013-04-05 10:51:23