为了账号安全,请及时绑定邮箱和手机立即绑定

Jquery输入文本

Jquery输入文本

元芳怎么了 2019-04-26 19:19:45
我一直在寻找类似的问题/答案,但没有看到。如果这是重复,请提前道歉。我在JS中创建了一个基于文本的游戏。这是我第一次从头开始创建项目。所有文本都发生在#dialog div中,我想让用户输入对应于if-else函数选择,并在新选项中生成文本。我有第一次转换(从介绍游戏更改到单击时场景中的文本的文本)工作。什么是不起作用的是选择选择文本输入。我输入的任何内容都会刷新游戏。我也提出了一个警告来测试它并且没有运行。我遇到的另一个问题是,我在if / else语句中添加的新选项的变量是以编码方式运行还是需要进行更改。有些选项会出现不止一次,所以我希望它能在多个场景中运行。HTML    <div id="dialog">     </div>      <div class="form">       <form id="my-form">         <input type="text" id="userData" placeholder="enter move here">        <button type="submit" class="btn">play</button>      </form>     </div>JS //游戏对话框/将段落添加到#dialog div //用户移动 - 表单输入    var addParagraph = $('#dialog');     var userMove = $("#userData").val();//介绍游戏文字    var introGame = $(function () {        $(addParagraph).append('<p> My Text.. </p>');     });//第一场比赛。玩家选择1,2或3.选择在对话框中触发新文本以及新设置选项或玩家结果。    var scene1 = $(function () {     $(introGame).click(function() {     $(addParagraph).text('Move Question Text');     $(addParagraph).append("<p> 1.Choice Description </p>");     $(addParagraph).append("<p> 2.Choice Description </p>");     $(addParagraph).append("<p> 3.Choice Description </p>");     $(addParagraph).append("<p> Enter: 1, 2, or 3 below </p>");     var playMove = function() {       $("#my-form").submit(function() {         var text = userMove;         var move = template(text);     if(text == '') {        return false;     } else if(text == '1') {      $(scene1).click(function () {        evasiveManuevers();      });       }else if(text == '2') {       $(scene1).click(function () {         lightSpeed();       });     } else if(text == '3') {        $(scene1).click(function () {          fightEnemy();        });     } else {           alert("Working!");          }            });       };      });     });先感谢您!
查看完整描述

2 回答

?
梦里花落0921

TA贡献1772条经验 获得超5个赞

我猜你错误的做法是期待这一点

var userMove = $("#userData").val();

会在比赛期间发生变化。$("#userData").val()是一个值,而不是一个函数,所以如果我理解你想要什么,你应该创建一个这样的getter

var getUserMove = function(){ $("#userData").val(); };

并用它作为var text = getUserMove();。但目前尚不清楚你的位置

var addParagraph = $('#dialog');var userMove = $("#userData").val();

代码是(它是否在某个处理程序中?我建议将整个代码显示为一个脚本,而不是将其分成某些部分)。


查看完整回答
反对 回复 2019-05-07
?
智慧大石

TA贡献1946条经验 获得超3个赞

我认为您的IF语句不会像那样运行。您可以在scene1点击功能中进行IF条件测试,如下所示:

$(scene1).click(function (){
  if(text == '1') {
     evasiveManuevers();
   } else {
  if(text == '2') {
     lightSpeed();
   } else {
        // etc 
   }})


查看完整回答
反对 回复 2019-05-07
  • 2 回答
  • 0 关注
  • 710 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信