如何在来自服务器的 js.erb 文件响应中使用 jQuery 选择单击的元素 - 使用 $(this) 等?
我有一个项目表,希望能够在我单击“添加项目”按钮的行下方插入一个新项目。如果可能的话,我想使用一个通用的 jQuery 选择器,而不必依赖特定的 css id。
这是我的项目表:
<table class="table">
<tr class="active">
<th style="width:31%">Project</th>
<th style="width:42%">Notes</th>
<th style="width:10%">Due</th>
<th style="width:8%">Priority</th>
<th style="width:3%"></th>
<th style="width:3%"></th>
<th style="width:3%"></th>
</tr>
<% @projects.each_with_index do |project, index| %>
<tr id="row-<%= index + 1 %>">
<td><%= project.title %></td>
<td><%= project.notes %></td>
<td><%= project.due_date %></td>
<td><%= project.priority %></td>
<td><a href="#">Edit</a></td>
<td><a href="#">Del</a></td>
<td><%= link_to "+", new_project_path(@project, :row => index + 1), :remote => true, :class => "add-project" %></td>
</tr>
<% end %>
</table>
这是我的创建操作:
def create
@project = Project.new(params[:project])
@project.save
respond_with(@project)
end
这是我的 create.js.erb 文件:
$(this).closest("tr").after("<%= j(render "new_project_row") %>");
这是我的 new_project_row 部分:
<tr>
<td><%= @project.title %></td>
<td><%= @project.notes %></td>
<td><%= @project.due_date %></td>
<td><%= @project.priority %></td>
<td><a href="#">Edit</a></td>
<td><a href="#">Del</a></td>
<td>#</td>
</tr>
没有错误被抛出。新项目已正确添加到数据库中,但未将新行插入到项目表中。对此的任何帮助将不胜感激。