1

我试图在 ruby​​ 中做动态选择框。jQuery 看起来像这样:

jQuery ->
$('#person_state_id').parent().hide()
states = $('#person_state_id').html()
$('#person_country_id').change ->
 country = $('#person_country_id :selected').text()
escaped_country = country.replace(/([ #;&,.+*~\':"!^$[\]()=>|\/@])/g, '\\$1')
options = $(states).filter("optgroup[label='#{escaped_country}']").html()
if options
  $('#person_state_id').html(options)
  $('#person_state_id').parent().show()
else
  $('#person_state_id').empty()
  $('#person_state_id').parent().hide()

并认为:

<%= f.grouped_collection_select :state_id, Country.order(:name), :states, :name, :id, :name, include_blank: true %>

这是可行的,但是...当我转到 example.com/person/new 上的我的页面时-它不起作用。我必须重新加载页面 - 然后一切正常......为什么它在第一次访问时不加载 JQuery ?

4

2 回答 2

2

在里面写你的函数$(document).ready()来加载列表框中的项目。
此功能将在页面加载期间加载您的功能

$(document).ready(function() {
  //your function;
});
于 2013-07-08T08:42:30.737 回答
0

正如伊恩所说,

在 Rails 4.0 中,只需将其添加到您的 Gemfile 中:

宝石'jquery-turbolinks'

并将其添加到您的 assets/javascripts/application.js 文件中:

//= 需要 jquery.turbolinks

于 2013-12-04T03:08:45.943 回答