CSS通过jquery保持像素更改

时间:2013-09-17 13:37:34

标签: javascript jquery css

右箭头没有移动汽车,如果它显而易见,我道歉但我无法弄明白为什么。

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是右箭头键的代码

3 个答案:

答案 0 :(得分:11)

对于non-display keys箭头键,可能不会触发按键事件,请尝试keydownkeyup

Spec:keypress(仅适用于产生字符值的键)

$(document).ready(function () {

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

});

演示:Fiddle

答案 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

答案 2 :(得分: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