只要按下箭头键,我想重复运行特定的代码段。我试着在一周内收集尽可能多的关于JavaScript的内容,并编写了这段代码(见下文),但它没有用。现在我正在尝试在页面上打印一些东西,但在最终实现中我需要重复运行一个文件。此外,我想知道一种方法来打印新执行的功能的结果,而不删除屏幕上已有的任何内容。
<html>
<head>
<title>
</title>
</head>
<body>
<script>
document.write("Script loaded <br/>");
document.onkeydown=initiate;
function initiate{
$(document).keydown(function(event) {
keyCode=event.keyCode;
event.preventDefault();
});
}
if(keyCode==38){
window.setInterval({a()},100);
function a(){
document.write("Up key</br>");
}
else if(keyCode==39){
window.setInterval({b()},100);
function b(){
document.write("Right key</br>");
}
else if(keyCode==40){
window.setInterval({c()},100);
function c(){
document.write("Down key</br>");
}
else if(keyCode==41){
window.setInterval({d()},100);
function d(){
document.write("Left key</br>");
}
</script>
</body>
</html>
P.S。:请原谅我糟糕的脚本编写技巧。为了将它整合到我正在进行的项目中,我试图抓紧一切。
答案 0 :(得分:2)
请稍微清理一下你的代码。你正在做一些不必要的复杂的事情
定义所有函数a,b,c,d,然后使用以下代码。如果使用jquery,请使用适当的处理程序。
document.onkeydown = function() {
switch (window.event.keyCode) {
case 37:
window.setInterval(a,100);
document.write("left key</br>");
break;
case 38:
window.setInterval(a,100);
document.write("up key</br>");
break;
case 39:
window.setInterval(c,100);
document.write("right key</br>");
break;
case 40:
window.setInterval(d,100);
document.write("down key</br>");
break;
}
};
注意:
1.使用innerHTML代替document.write是一种更好的做法。
2.使用keydown,而不是按键,用于不可打印的键,如箭头键
答案 1 :(得分:0)
代码中的问题
if-else
阻止不正确。$(document).keydown
是jQuery,不是原生JavaScript,你不需要它。代码:
document.write("Script loaded <br/>");
document.onkeydown = initiate;
function initiate() {
keyCode = window.event.keyCode;
event.preventDefault();
if (keyCode == 38) {
window.setInterval({
a()
}, 100);
} else if (keyCode == 39) {
window.setInterval({
b()
}, 100);
} else if (keyCode == 40) {
window.setInterval({
c()
}, 100);
} else if (keyCode == 41) {
window.setInterval({
d()
}, 100);
}
}
function a() {
document.write("Up key</br>");
}
function b() {
document.write("Right key</br>");
}
function c() {
document.write("Down key</br>");
}
function d() {
document.write("Left key</br>");
}