Javascript keydown函数只被调用一次

时间:2014-01-08 11:35:26

标签: javascript jquery css

由于某些原因,当我调用此函数时,它只适用于第一个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++;
       }

1 个答案:

答案 0 :(得分:3)

您看不到它有效,因为您每次都会x重新初始化为10

解决方案是将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部分的原因。