我已经看到很多有关':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
谢谢阿米特和易卜拉欣!
在您的script.js文件中使用此代码。
$("#user-input").keypress(function(key){
if(key.which === 13 && $('#user-input').is(':focus')){
var value = $('#user-input').val();
alert(value);
}
}) ;