对于“Web工程”中的作业,我们必须使用JSP,Servlet和Java Bean编写Web应用程序游戏。游戏的算法,使用控件的Servlet,模型/视图的JSP和数据的Bean工作。我现在遇到的问题是可视化,JQuery / Javascript函数。
基本上我有一个包含7个字段的列表,可以将汽车附加到这些字段中。 (汽车是跨度)这是一个切割游戏,每一轮你骰子并向前移动。
我遇到了以下问题,我发现很难解决:
当然在游戏开始时,汽车(跨度)会附加到起跑场,但我不知道如果它向前移动,如何保存汽车的位置。 每次在开始时刷新JSP时,汽车都将处于起始区域。我尝试过的是在java bean中保存汽车的旧位置,并在页面加载时在Jquery中追加到右边的字段,但不知怎的,这不起作用。 我想出的唯一的事情就是在javabeans中保存playfield的整个代码,但我认为这不是最佳解决方案,也许有人有更好的想法,或者知道为什么appendTo不起作用?
下面是代码: HTML
<div class="field">
<h2 class="accessibility">Playfield</h2>
<ol id="road">
<li id="start_road">
<span class="accessibility">Startingfield</span>
<span id="player1">
<span class="accessibility"><em>Player 1</em></span>
</span>
<span id="player2">
<span class="accessibility"><em>Player 2</em></span>
</span>
</li>
<li class="empty_road" id="road_1">
<span class="accessibility">Field 2</span>
</li>
<li class="oil_road" id="road_2">
<span class="accessibility">Field 2</span>
</li>
<li class="empty_road" id="road_3">
<span class="accessibility">Field 2</span>
</li>
<li class="empty_road" id="road_4">
<span class="accessibility">Field 2</span>
</li>
<li class="oil_road" id="road_5">
<span class="accessibility">Field 2</span>
</li>
<li id="finish_road">
<span class="accessibility">Goalfield</span>
</li>
</ol>
</div>
正如您所看到的那样,每次页面重新加载时,跨度都在起始区域,这就是问题所在。这里是Jquery函数:
$(document).ready(function() {
$("player1").appendTo("<%= game.getoldPlayer1() %>");
$("player2").appendTo("<%= game.getoldPlayer2() %>");
prepareAnimation();
$("#player1").fadeOut(700, function() {
$("#player1").appendTo("<%= game.getPlayer1() %>");
$("#player1").fadeIn(700);
});
$("#player2").delay(1400).fadeOut(700, function() {
$("#player2").appendTo("<%= game.getPlayer2() %>");
$("#player2").fadeIn(700,completeAnimation);
});
});
我试图用开头的两个appendTos解决问题,这应该将汽车设置为旧位置,这些位置保存在JavaBean中,但不知何故它不起作用。
答案 0 :(得分:1)
不确定这是否是输入错误,但您错过了#
。
$("player1").appendTo("<%= game.getoldPlayer1() %>");
$("player2").appendTo("<%= game.getoldPlayer2() %>");
应该是
$("#player1").appendTo("<%= game.getoldPlayer1() %>");
$("#player2").appendTo("<%= game.getoldPlayer2() %>");