jQuery事件委托和Rails资产管道

时间:2011-11-01 10:49:09

标签: jquery ruby-on-rails ajax jquery-ui asset-pipeline

我在我的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方式”?

0 个答案:

没有答案