Javascript keydown функция вызывается только один раз

0

По какой-то причине, когда я вызываю эту функцию, она работает только при первом нажатии. Я не уверен, что я делаю неправильно.

$(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
    У меня были проблемы с вводом здесь. Я отредактирую это.
Теги:

1 ответ

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).

  • 0
    Глупая ошибка с моей стороны. Спасибо за хороший ответ!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню