右箭头没有移动汽车,如果它显而易见,我道歉但我无法弄明白为什么。
$(document).ready(function () {
$(document).keypress(function (e) {
if (e.which == 39) {
$(".car").css("left", "+=25px");
}
});
});
根据Javascript Char Codes (Key Codes) 39
是右箭头键的代码
答案 0 :(得分:11)
对于non-display keys箭头键,可能不会触发按键事件,请尝试keydown
或keyup
。
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");
}
});
});
答案 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。
开心玩乐!