2014-01-08 175 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

我的部分愚蠢的错误。谢谢你的好回答! –