【问题标题】:Loop switch statement循环切换语句
【发布时间】:2015-09-02 11:58:36
【问题描述】:

我现在如何循环这个 switch 语句?因为在我循环该语句后,我想编写一个代码,只要按下其中一个键就将文本文本添加到站点

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    </head>
    <body>      
    <script language="javascript" type="text/javascript">

        document.onkeydown = function(event) {
            switch(event.keyCode) { 
            case 13:
                    document.write("Use weapon");
                    break;
            case 50:
                    document.write("Switch weapon");
                    break;
            case 32:
                    document.write("Jump");
                    break;
            case 38:
                    document.write("Run Forward");
                    break;
            }
            return event.returnValue;
        }
    </script>
</body>

【问题讨论】:

  • 循环是什么意思?
  • 我的意思是,只要我按下这些按钮之一,就应该重新询问 switch 语句
  • 您的用户名要求生涩的“专业人士”投反对票。

标签: loops switch-statement


【解决方案1】:

“我的意思是,当我按下其中一个按钮时,应立即重新询问 switch 语句” – Codenoob,对问题发表评论

这应该可行:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
</head>
<body>      
<script language="javascript" type="text/javascript">

    var trackKeyCommand = function(){
        document.onkeydown = function(event) {
            switch(event.keyCode) { 
            case 13:
                    document.write("Use weapon");
                    document.write("<br />");
                    trackKeyCommand();
                    break;
            case 50:
                    document.write("Switch weapon");
                    document.write("<br />");
                    trackKeyCommand();
                    break;
            case 32:
                    document.write("Jump");
                    document.write("<br />");
                    trackKeyCommand();
                break;
            case 38:
                    document.write("Run Forward");
                    document.write("<br />");
                    trackKeyCommand();
                break;
            }
            return event.returnValue;
        }
    }
    trackKeyCommand();
</script>

我所做的是创建一个函数 trackKeyCommand。按下四个键(ENTER、SPACE、UP 和 2)中的任何一个后,它会再次调用该函数,从而导致循环。

我还在每个短语后面加上一个换行符;我发现它更容易阅读。

【讨论】:

    【解决方案2】:

    您不需要循环。 onkeydown 在按键被按住时连续触发。 如果您只想让它触发一次,请改用 onkeypressonkeypress 每按下一个键就会触发一次。

    无论哪种方式,您都不需要循环。

    您可以参考W3school 了解有关onkeydown 的更多信息。 他们还为here 上的活动提供了一个测试页面。

    【讨论】:

    • 我遇到的问题是我想在按下键后立即添加文本,但目前它只向按下的键显示一次文本,然后不会改变。我想我可以通过循环语句并在末尾添加一个值而不是 document.write 来解决这个问题,所以只要按下一个键,文本就会添加
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多