2011-09-29 50 views
3

我很抱歉,如果這是基本的,但我已經搜查,並沒有發現任何的作品。到按鍵響應的JavaScript

我想加載網頁。當該頁面加載時,它會顯示一個圖像。我想讓頁面自動開始收聽右箭頭按鍵。當發生這種情況時,我的腳本中的一個函數將會改變圖像(通過使用點擊時會作出反應的按鈕,我已經開始工作)。

這是傾聽和響應按鍵,我不能去上班。請注意,我使用的是Safari,但是我希望它可以在Firefox或IE中運行。

請幫助表示感謝。

UPDATE迴應點評:這是我嘗試過,但我簡化了另一部分,使這個短 - 現在它只是一個結果寫入到一個div:

<html> 
<head> 
<script language="Javascript"> 
function reactKey(evt) { 
    if(evt.keyCode==40) { 
     document.getElementById('output').innerHTML='it worked'; 
    } 
} 
</script> 
</head> 
<body onLoad="document.onkeypress = reactKey();"> 
<div id="output"></div> 
</body> 
</html> 
+1

請告訴我們你有什麼到目前爲止已經試過。 –

回答

4

如果您正在使用jQuery ,你可以這樣做:做

$(document).keydown(function(e){ 
    if (e.keyCode == 39) { 
     alert("right arrow pressed"); 
     return false; 
    } 
}); 
+0

我不使用jquery - 沒有它沒有辦法做到這一點嗎? – thf

+0

@thf是的,但根據瀏覽器兼容性進行編程可能會很複雜。 –

1

最簡單的辦法就是用很多很多很多熱鍵庫之一,像https://github.com/jeresig/jquery.hotkeyshttps://github.com/marquete/kibo

編輯:嘗試這樣的事情(你已經裝載基博的JavaScript後)。

在你的身體發言,添加onload處理程序:<body onload="setuphandler">

然後加入這樣的事情(從基博頁拍攝):

<script type="text/javascript"> 
var k = new Kibo(); 
function setuphandler() 
{ 
    k.down(['up', 'down'], function() { 
    alert("Keypress"); 
    console.log('up or down arrow key pressed'); 
}); 
} 
</script> 
+0

這看起來很有希望,但我想我落後了一步。 Kibo說要包括來源 - 完成。然後它說:「然後通過創建一個Kibo實例來設置一個事件監聽器:var k = new Kibo();」我在哪裏添加最後一部分 - 在?這是扔我的部分。 – thf

+0

我試過了編輯。什麼都沒發生。我上下打開網頁,並且(如果它已經向下滾動)向上和向下滾動。 – thf

+0

你看着控制檯,什麼都看不到? – Femi

1
document.onkeydown= function(key){ reactKey(key); } 

function reactKey(evt) { 
    if(evt.keyCode== 40) { 
     alert('worked'); 
    } 
} 

http://jsfiddle.net/dY9bT/1/

+0

嘗試過,但沒有發生。請注意,我這樣做了:'' – thf

+0

我明白了。我用正確的代碼更新了我的答案。它似乎只適用於onkeydown。你可以把它放在身上,儘管我沒有嘗試。這裏是小提琴鏈接http://jsfiddle.net/dY9bT/1/ – Maxx