(RubyonRails)在服务器数据更新之后,如何使用jquery/ajax以最快的方式从部分加载/显示特定的div?
为了清楚起见,我将显示所有相关的代码文件,以使问题更清楚。我正在用表单编辑分部中的特定div,只想显示新更新的div 我在记分板上有这个div#show:(RubyonRails)在服务器数据更新之后,如何使用jquery/ajax以最快的方式从部分加载/显示特定的div?,jquery,ruby-on-rails,ajax,Jquery,Ruby On Rails,Ajax,为了清楚起见,我将显示所有相关的代码文件,以使问题更清楚。我正在用表单编辑分部中的特定div,只想显示新更新的div 我在记分板上有这个div#show: <div class="all-schedules"> <%= render 'schedules/schedules' %> </div> 单击编辑按钮,将触发以下文件(edit.js.erb): $("#schedule_<%=@schedule.id%>").hide(); #
<div class="all-schedules">
<%= render 'schedules/schedules' %>
</div>
单击编辑按钮,将触发以下文件(edit.js.erb):
$("#schedule_<%=@schedule.id%>").hide(); #the div being edited is hidden
$("#schedule_<%=@schedule.id%>").after("<%= j render 'scheduleedit'%>"); #this renders the edit form where the div used to be
$(“#日程安排”).hide()#正在编辑的div被隐藏
美元(“#附表”)。在(“)之后#这将呈现div以前所在的编辑表单
现在,在提交编辑表单时,我想隐藏编辑表单,然后带回带有新数据的div(schedule
)。如果我以前使用.html()重新加载整个.all schedulesdiv,它会重置分页索引,而且由于分页是ajax,因此它会由于.html()而停止工作。我的目标是只影响特定的
#调度div
div并将其插入先前的位置,并停留在div所在的分页页面上
到目前为止,update.js.erb文件是这样的:
$("#edit_schedule_<%=@schedule.id%>").hide(); #this successfully hides the edit form
#code needed here to re-render the `#schedule_<%=schedule.id%>` div
#without affecting the ajax pagination and staying on the same page in the pagination index
$(“编辑日程”).hide()#这将成功隐藏编辑表单
#这里需要重新呈现`#schedule ` ` div的代码
#不影响ajax分页,并且在分页索引中保持在同一页面上
我更倾向于使用.html(),因为它比.load()快。我不知道是否还有其他方法可以让它像.html()一样快。提前谢谢 > P>您可以考虑将一个时间表的内容移至部分。 schedules/_schedule.html.erb
<div class="schedule-list" id="schedule_<%=schedule.id%>">
# your content
</div>
#你的内容
父视图中的明细表:
<div class="all-schedules">
<%= render @schedules %>
</div>
此时,您可以轻松地仅渲染需要重新加载的明细表:
update.js.erb
$("#schedule_<%=@schedule.id%>").html("<%= j render('schedules', schedule: @schedule) %>")
$(“#附表”)html(“”)
试试看,兄弟;) 哥们,这是个好办法。你是冠军。只是一件小事,在update.js.erb中应该是“schedule”而不是“schedules”。否则,这个解决方案太棒了!!!
$("#schedule_<%=@schedule.id%>").html("<%= j render('schedules', schedule: @schedule) %>")