我想只要按下箭头键就重复运行特定的代码段。我尝试在一周内尽可能多地学习有关 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>
PS:请原谅我糟糕的脚本技巧。我试图快速掌握所有内容,以便将其整合到我正在从事的项目中。
最佳答案
请稍微清理一下你的代码。你让事情变得不必要的复杂
定义所有函数 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.It is a better practice to use innerHTML instead of document.write.
2.Use keydown, not keypress for non-printable keys such as arrow keys
关于javascript - 只要按下特定键就循环运行函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20769732/