我的代码出现问题如下:
$(document).ready(function() {
var currenty = 0;
var currentx = 0;
$("body").keypress(function(event) {
if (event.keyCode === 68) {
$(".box").animate({marginLeft: currenty + 30}, 200);
currenty += 30;
} else if (event.keyCode === 65) {
$(".box").animate({marginLeft: currenty - 30}, 200);
currenty -= 30;
} else if (event.keyCode === 87) {
$(".box").animate({marginTop: currenty + 30}, 200);
currentx += 30;
} else if (event.keyCode === 83) {
$(".box").animate({marginTop: currenty - 30}, 200);
currentx -= 30;
} else {
}
});
});
我对这段代码的问题是,当我按下一个键时,没有任何反应。
编辑:如果我将第一个键码更改为32(空格键)
似乎有效再次编辑:刚刚解决了我的问题,关键代码是大写字母的位置
答案 0 :(得分:1)
转而使用keydown
。对于字母d,keypress
返回100而不是68。
测试差异here。
答案 1 :(得分:0)
使用文档而不是正文:
$(document).ready(function() {
var currenty = 0;
var currentx = 0;
$(document).keypress(function(event) {
if (event.keyCode === 68) {
$(".box").animate({marginLeft: currenty + 30}, 200);
currenty += 30;
} else if (event.keyCode === 65) {
$(".box").animate({marginLeft: currenty - 30}, 200);
currenty -= 30;
} else if (event.keyCode === 87) {
$(".box").animate({marginTop: currenty + 30}, 200);
currentx += 30;
} else if (event.keyCode === 83) {
$(".box").animate({marginTop: currenty - 30}, 200);
currentx -= 30;
} else {
}
});
});