我一直在寻找类似的问题/答案,但没有看到。如果这是重复,请提前道歉。我在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();
代码是(它是否在某个处理程序中?我建议将整个代码显示为一个脚本,而不是将其分成某些部分)。
智慧大石
TA贡献1946条经验 获得超3个赞
我认为您的IF语句不会像那样运行。您可以在scene1点击功能中进行IF条件测试,如下所示:
$(scene1).click(function (){ if(text == '1') { evasiveManuevers(); } else { if(text == '2') { lightSpeed(); } else { // etc }})
添加回答
举报
0/150
提交
取消