2013-04-09 68 views
0
function initKeys() { 

    $(document).bind("keydown", "U", LoadPlayer); 
} 

window.onload = initKeys; 

我想在按下鍵時執行「LoadPlayer」函數。 我得到的是,對於任何按下的鍵「LoadPlayer」被執行。JS將鍵盤快捷鍵綁定到某個函數

熱鍵庫添加這樣的:

<script language="javascript" type="text/javascript" src="./libraries/jquery.hotkeys.js"></script> 

但它不能被發現。我把它放在和其他圖書館完全相同的地方。與其他人沒有問題

我在做什麼錯?

+0

您正在使用哪個jQuery Hotkeys?有多個版本的調用方式不同。 – 2013-04-09 13:15:03

+0

@泰勒克朗普頓 - jquery.hotkeys.js – Sanich 2013-04-09 13:15:53

+0

我問的是你從哪裏得到它。如果你能提供一個證明這個問題的jsfiddle將會很有幫助。 – 2013-04-09 13:16:18

回答

0

您正在綁定所有鍵上的keydown事件。 「U」是您將傳遞給處理程序的參數,loadPlayer(q.v http://api.jquery.com/bind/)。直接綁定keydown,然後在keycode中對其進行過濾。

+2

Technologeeks可能會在這裏。也許OP沒有正確加載熱鍵,而是執行jquery core bind()。 – thelr 2013-04-09 13:22:41

+0

@Seth,其他人也是這樣,但他們的答案都是不正確的。但我認爲你可能是真正想出來的人。這聽起來很合理。 – 2013-04-09 13:26:06

+0

@Seth - 你說得對。 jquery.hotkeys.js無法識別,儘管它存在於正確的路徑中。我想這已經是另一個問題了,但是這可能是什麼原因? – Sanich 2013-04-09 13:31:31

0

試試這個,它應該工作。 它檢查在匿名函數中按下的鍵(以便您可以根據需要添加儘可能多的熱鍵)。

$(document).ready(function(){ 
    $(document).bind("keydown", function(e){ 
     e = e || window.event; 
     var charCode = e.which || e.keyCode; 
     if(charCode == 85) LoadPlayer(); 
    }); 
}); 

演示:http://jsfiddle.net/HULgw/ (單擊結果框運行,使keydown事件聽取:)後)

+0

請查看標籤和評論,你會發現這個答案是不正確的。 – 2013-04-09 13:33:55

+0

你是完全正確的。我很新,我還沒有得到好的反應。下次我會再看兩次標籤;) – 2013-04-09 13:44:07

0

嘗試從您的javascript的src路徑刪除./。同時檢查你的熱鍵庫的文件權限。