2014-01-08 96 views
0

由於某些原因,當我調用此函數時,它僅適用於第一個keydown。林不知道我做錯了什麼。Javascript keydown函數僅被調用一次

$(document).ready(function(){ 
$(document).keydown(function(e) { 
     var x = 10; 
    var code = (e.keyCode ? e.keyCode : e.which); 

     if(code == 40){ 

      function rise(x){ 
      $('#div2').css('bottom',x+'%'); 
     } 

     rise(x); 
    x++; 
     } 
+0

由於您沒有關閉您的代碼,甚至沒有正確縮進,我對確切的代碼有點不確定。 –

+0

我在這裏輸入時遇到了麻煩。我會編輯它。 –

回答

3

你沒有看到它的工作,因爲你x10每次重新初始化。

一個解決辦法是把X外部範圍:

$(document).ready(function(){ 
    var x = 10; 
    $(document).keydown(function(e) { 
     var code = (e.keyCode ? e.keyCode : e.which); 
     function rise(x){ 
      $('#div2').css('bottom',x+'%'); 
     } 
     rise(x); 
     x++; 
    }); 
}); 

需要注意的是,我們沒有理由在這裏定義rise功能。你可以簡單地做

$(document).ready(function(){ 
    var x = 10; 
    $(document).keydown(function(e) { 
     var code = (e.keyCode ? e.keyCode : e.which); 
     $('#div2').css('bottom',x+'%'); 
     x++; 
    }); 
}); 

(我希望有一個原因爲code部分)。

+0

我的部分愚蠢的錯誤。謝謝你的好回答! –