【发布时间】:2014-11-11 17:16:24
【问题描述】:
第一次在这里发帖,如果有问题(我如何输入代码,如果我包含的内容不够多,或者我的问题太模糊),我深表歉意。
我对 RoR 非常非常陌生,我从构建一个井字游戏开始。我已经将它构建为在命令行上工作,现在我正在尝试使其基于 Web。我有一个可点击的板,会弹出 X 和 O 图像。这与下面的表格相关联(一旦一切正常,我将使其不可见)记录哪个玩家点击了哪个位置。
目前,我遇到了在提交页面后尝试切换播放器的问题。我正在使用 jQuery 进行点击。单击时,我将每个空间弹出为“X”,我只是不知道在提交后如何将播放器更改为“O”。我应该通过 jQuery 还是 Ruby 来做到这一点?还有,我该怎么做?
为了澄清,我意识到我的代码可能不是最干净的,但目前我更担心功能,稍后会使其更美观。
jQuery:
$(document).ready(function(){
$(".square").click(function(){
// Gather the position that was clicked
var number = $(this).data("position");
// Locate the game form
var form = $("form");
// Locate the input field corresponding to that position
var input = $("input[data-position='" + number + "']");
// Set the value of that input field to "X" or "O"
input.val("X");
// Submit the form
form.submit();
});
});
鲁比:
def create
@game = Game.new(game_params)
@game.save
redirect_to @game
end
def update
@game = Game.find(params[:id])
@game.update(game_params)
redirect_to @game
end
def show
@game = Game.find(params[:id])
end
private
def game_params
params.require(:game).permit(:player_1, :player_2, moves_attributes: [:player, :id])
end
HTML 表单:
<%= nested_form_for @game do |f| %>
<%= f.fields_for :moves do |move_form| %>
<p>
<%= move_form.label :position %><br>
<%= move_form.text_field :player, data: {position: move_form.object.position} %>
<%= move_form.hidden_field :id %>
</p>
<% end %>
<input type="Submit">
<% end %>
HTML 游戏板:
<div id="board" align = center>
<table>
<tr>
<td data-position="0" class="square <%= class_for_move(0)%>"></td>
棋盘上的 9 个方格中的每一个方格都是一样的。
为以下人员提供下一个拦截器的链接:jQuery .click function is not working without a string
【问题讨论】:
标签: javascript jquery html ruby-on-rails ruby