2013-09-17 2 views
0

Стрелка вправо не двигает автомобиль, я прошу прощения, если это что-то очевидное, но я не мог понять, почему.Перемещение CSS с левой стороны на jQuery

http://jsfiddle.net/W9HDt/

$(document).ready(function() { 

      $(document).keypress(function (e) { 
       if (e.which == 39) { 
        $(".car").css("left", "+=25px"); 
       } 
      }); 

}); 

согласно Javascript Char Codes (Key Codes)39 код для правой клавиши со стрелкой

+0

что странно, когда я попробовал ваш код это апостроф, движущаяся машину, но когда я попробовал код Аруна это стрелка вправо, движущаяся машину. должны быть разные наборы кода, которые выполняются в разное время, это единственное объяснение, о котором я могу думать, почему они будут отличаться в разные моменты времени. – Malachi

+0

@ Malachi попробует «keyup» вместо функции «keypress» –

+0

I сделал это. Я просто говорю, что ключ в значении '39' меняется на апостроф, если вы используете' .keypress', а не 'keydown' или' keyup', я думаю ** Арун ** объяснил это тем, что существует другой набор значений для 'keypress' – Malachi

ответ

11

Ключом пресс-конференция не может быть уволен за non-display keys как клавиши со стрелками, попробуйте keydown или keyup вместо этого.

Spec: нажатие клавиши (только для ключей, которые производят значение символа)

$(document).ready(function() { 

    $(document).keyup(function (e) { 
     if (e.which == 39) { 
      $(".car").css("left", "+=25px"); 
     } 
    }); 

}); 

Демонстрация: Fiddle

+1

+1 приятное решение. Опыт имеет значение :) –

+1

+1 вау, не знал этого, спасибо! –

0

Проверить это значение fiddle

e.which для 3 составляет 51 не 39.

$(document).ready(function() { 

      $(document).keypress(function (e) { 
       if (e.which == 51) { 
        $(".car").css("left", "+=25px"); 
       } 
      }); 


}); 

Check the Reference

+0

вы уверены? ваша скрипка не работает. и код равен 39 :) –

+0

мой скрипт URL http://jsfiddle.net/W9HDt/10/ – sun

+0

Какой браузер и os вы используете – sun

0

Я знаю, что этот вопрос был дан ответ, и ответ был принят, но я не думаю, что это лучший возможный ответ.

Неверно, что событие нажатия клавиши запускает только видимые значения символов. Он срабатывает при нажатии любой клавиши, но проблема в том, что вы проверяете неправильное свойство события, которое вместо keyCode. В противном случае попробуйте следующее:

$(document).keypress(function (e) { 
    if (e.keyCode == 39) { 
     $(".car").css("left", "+=25px"); 
    } 
    if (e.keyCode == 37) { 
     $(".car").css("left", "-=25px"); 
    } 
}); 

KeyUp и KeyDown события вызывают только тогда, когда ключ соответственно освобождено или нажата. Если вы хотите удерживать клавишу вниз и видеть, как машина двигается, нужно использовать keyCode.

Удачи!

И fiddle

Смежные вопросы