2013-12-13 35 views
1

注意:所有代碼是這個的jsfiddle:http://jsfiddle.net/5qrkk/
我有這樣的代碼來註冊空間在Javascript空間點擊不登記

$(window).on("keydown", function(key){ 
    if(key==32){ 
     console.log("SPACE"); 
     $(".sh").fadeOut(600).toggleClass("hdt").toggleClass("sh"); 
     $(".hd").fadeIn(600).toggleClass("sht").toggleClass("hd"); 
     $(".sht").toggleClass("sh").toggleClass("sht"); 
     $(".hdt").toggleClass("hd").toggleClass("hdt"); 
    } 
}); 

的,如果循環內的內容,使與類SH股利(這是顯示)變得隱藏,並用hdt替換類sh(而不是立即去hd,因爲舊的hd類仍然需要修改)。同樣的事情發生在當前在hd類中的div(它開始隱藏)。點擊空間時,沒有任何事件發生,包括console.log。我也想避免把它們放在$(document).ready()函數中,因爲這可能會產生錯誤,因爲這會改變DOM,並且每次運行時都需要使用更新的DOM。

+0

事件處理程序的第一個參數是不是'key'是'event'。請參閱有關訪問密鑰的文檔http://api.jquery.com/keydown/ – charlietfl

回答

2
function(key) { 
    if(key==32){ 

應該看起來像

function(e){ 
    if(e.keyCode == 32){ 

傳遞給處理程序的參數是event對象。 keyCode是該對象上的一個屬性,它爲您提供了被按下的鍵。

Updated Fiddle

+0

謝謝!完美的作品! – zzomtceo

+0

@zzomtceo ..不客氣:) –