$(“ user-input”)。is(“:focus”),(“ *:focus”),(“ input:focus”)不起作用

问题描述 投票:0回答:1

我已经看到很多有关':focus'的问题,但是还没有看到很多有关基于文本的游戏的上下文或在if语句内部使用的有用答案。我想确定自己所写的内容是正确的,并且我的代码没有任何错误,我只是没有得到任何回报。我想对这个游戏进行非常糟糕的编码,但可悲的是直到我克服了这个难题才开始!感谢您的提前帮助!

编辑:自从我最初发布此内容以来,我已经进行了一些更改,并在评论和答案中添加了我要告知的内容。解决此问题后,我将发布原始代码和最终代码,但暂时仅将当前代码和错误代码关联。

我也发现了这个问题,https://https://stackoverflow.com/questions/967096/using-jquery-to-test-if-an-input-has-focus?rq=1。它问了,好像我按照答案说的去做,但错误代码仍然指出该行代码上有问题。

这是我的HTML文档,但是我几乎肯定这里没有任何问题。

        <!DOCTYPE HTML>
        <head>
           <title>Zork!!</title>
        </head>
       <body>
       <div id = "game text"><p>Welcome to Zork!!</div>
       <input id = "user-input" placeholder="Please type your command.."></input>

       <script type="text/javascript" src="jquery-3.4.1.min.js"></script>

       <script type="text/javascript" src="script.js"></script>
       </body>

这是我在更改答案之前的原始'script.js':

         $(document).ready(function(){
         $(document).keypress(function(key){


        if(key.which === 13 && $("user-input").is("*:focus")){
            //I also used "input: focus" and got the same error code
            var value = $("user-input").val();

            alert(value);
             }
           })   
         })

有了我所拥有的,我思考我将能够在输入框中键入单词,然后按回车键,然后得到一个文本框,告诉我我键入的内容。

错误代码:

jquery-3.4.1.min.js:2 Uncaught Error: Syntax error, unrecognized expression: 
: focus
at Function.se.error (jquery-3.4.1.min.js:2)
at se.tokenize (jquery-3.4.1.min.js:2)
at se.compile (jquery-3.4.1.min.js:2)
at se.select (jquery-3.4.1.min.js:2)
at se (jquery-3.4.1.min.js:2)
at Function.se.matchesSelector (jquery-3.4.1.min.js:2)
at Function.k.filter (jquery-3.4.1.min.js:2)
at j (jquery-3.4.1.min.js:2)
at k.fn.init.is (jquery-3.4.1.min.js:2)
at HTMLDocument.<anonymous> (script.js:7)
//This is the line pointing to the :focus issue I was having

谢谢阿米特和易卜拉欣!

javascript jquery text-based
1个回答
0
投票
  1. 在您的script.js文件中使用此代码。

    $("#user-input").keypress(function(key){
        if(key.which === 13 && $('#user-input').is(':focus')){
            var value = $('#user-input').val();
            alert(value);
        }
    }) ;
    
© www.soinside.com 2019 - 2024. All rights reserved.