我在我的Rails 3.1应用程序中使用jQuery UI。它是一个基本的CRUD应用程序,由几个“主”控制器构成,它们处理整个应用程序结构 - 登陆页面和工作流,然后是其他处理模型交互的控制器(通过ajax请求)。
我的很多应用程序都使用内联编辑表单等等,而且我有很多部分内容如下:
_action_list.html.erb
<script>
$("#action-new").button({
icons: {
primary: "ui-icon-plus"
}
});
$(".buttonset").buttonset();
$("#actions").accordion();
</script>
<div id="actions" class="ui-widget-content ui-corner-all">
<% @segment.action_items.each do |action_item| %>
<%= render action_item %>
<% end %>
</div>
<div id="new-action">
</div>
<br />
<%= link_to "New Action",
new_report_segment_action_item_path(@segment.report, @segment),
{:id => "action-new", :method => :get, :remote => true} %>
通过 action_list.js.erb :
呈现$("#actions").html("<%= escape_javascript(render "action_list") %>")
第一次加载页面时,一切都会正常工作,但是在完成编辑过程后(渲染编辑表单 - &gt;保存 - &gt;重新渲染action_list),一些jQuery元素(在这种情况下是手风琴)不会渲染因为他们应该没有应用jQuery样式。我知道这可能是因为元素需要使用事件委托重新绑定 - 广泛详细here&amp; here
所以,我想将内联JS解压缩到资产管道文件中,然后实现事件委托,以便在后台重新绑定元素 - 我希望将所有JS都保留在我的视图中。如何在不使用jQuery编写所有ajax功能的情况下完成“Rails方式”?