jquery - Rails 4 TurboLinks 和 jQuery 动态链接效果不佳

标签 jquery ruby-on-rails turbolinks

我正在 Rails 4.0 中开发一个应用程序,但我遇到了 Turbolinks 与我拥有的一些 jQuery 代码不能很好地配合的问题。我有一个 Quote 模型,它有一个相关的 QuoteItems 模型。我正在使用 Accepts_nested_attributes_for 和一些 jQuery 来填充订单项表单。

当我点击链接进入 new_quote_path 时,动态链接不会触发 JavaScript 代码。当我刷新页面时,表单效果很好。我喜欢涡轮链接,因为它速度超快,但不知道如何让它在开发中发挥作用。这是一些代码。

在quotes.js.coffee中

jQuery ->
  $('form').on 'click', '.remove_line_items', (event) ->
  $(this).prev('input[type=hidden]').val('1')
  $(this).closest('fieldset').hide()
  event.preventDefault()

$('form').on 'click', '.add_fields', (event) ->
  time = new Date().getTime()
  regexp = new RegExp($(this).data('id'), 'g')
  $(this).before($(this).data('fields').replace(regexp, time))
  event.preventDefault()

报价查看new.html.erb

<%= form_for @quote, :class => "hello" do |f| %>
    <fieldset>
      <p>
        <%= f.label :quote_date, "Date of Quote" %>  <br/>
        <%= f.text_field :quote_date %>
      </p>

      <p>
        <%= f.label :good_through %> <br/>
        <%= f.text_field :good_through %>
      </p>

      <p>
        <%= f.label :quote_number %><br/>
        <%= f.text_field :quote_number %>
      </p>
      <p>
        <%= f.label :customer_id, "Customer" %><br/>
        <%= select(:quote, :customer_id, Customer.all.collect {|c| [ c.fname, c.id ] }, :prompt => "Select Customer") %>
      </p>

      <%= f.fields_for :quote_items do |builder| %>
          <%= render 'quote_item_fields', :f => builder %>
      <% end %>

      <%= link_to_add_fields "Add Line Item", f, :quote_items %>

      <p>
        <%= f.submit %>
      </p>
    </fieldset>
<% end %>

最佳答案

我遇到了同样的问题,如果你想让turbolinks工作并保持你的动态jquery,试试这个gem:jquery-turbolinks

希望对你有帮助

关于jquery - Rails 4 TurboLinks 和 jQuery 动态链接效果不佳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17386740/

相关文章:

ruby-on-rails - Rails 模型创建和新建在测试环境中返回 nil

ruby-on-rails - 如何为具有 has_one/belongs_to 关系的模型创建工厂,这些关系通常被嵌套属性克服?

ruby-on-rails - 删除 Rails 应用并将其重新部署到 heroku

javascript - 如何让 Turbolinks 停止干扰我的 JS?

jQuery Chosen 插件动态添加选项而不使用 Ajax?

jquery - 向上/向下滚动到页面上的不同区域

javascript - Chart.js:在调整窗口大小时遇到​​问题

javascript - 多次使用 setInterval 和clearInterval 时出现问题

javascript - ExecJS::RuntimeError <%= javascript_include_tag 'application' , 'data-turbolinks-track' => true %>

ruby-on-rails - Turbolinks 访问页面中缺少 hubspot 聊天界面,但可以刷新整页