我正在开发一个基于Rails 4.0的应用程序,但遇到一个问题——turbolinks与我的一些jQuery代码不兼容。我有一个Quote模型,它有一个相关的QuoteItems模型。我使用accepts_nested_attributes_for和一些jQuery来填充行项目表单。
当我点击链接进入new_quote_path页面时,动态链接没有触发JavaScript代码。当我刷新页面时,表单可以正常工作。虽然我很喜欢turbolinks,因为它非常快,但我不确定如何在开发中使其正常工作。以下是一些代码。
在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 %>