Jquery Rails 4-为什么TurboLink导致日期选择器停止工作

Jquery Rails 4-为什么TurboLink导致日期选择器停止工作,jquery,ruby-on-rails,datepicker,Jquery,Ruby On Rails,Datepicker,我们从Rails 3.2升级到Rails 4.2,datepicker(jQueryUI)在升级后停止工作。引导程序3也用于Rails 3/4中 以下是simple\u表单中datepicker字段的示例: <%= f.input :since_date, :label => t('Since'), :as => :string %> t('Since'),:as=>:string%> 从应用程序的application.js中删除turbolinks后,datepi

我们从Rails 3.2升级到Rails 4.2,
datepicker(jQueryUI)
在升级后停止工作。引导程序3也用于Rails 3/4中

以下是
simple\u表单中
datepicker
字段的示例:

<%= f.input :since_date, :label => t('Since'), :as => :string %>
t('Since'),:as=>:string%>

从应用程序的
application.js
中删除
turbolinks
后,
datepicker
再次开始工作。有人能解释一下问题的原因吗

我不完全确定,但从实际的角度来看,我总是在我启动的任何Rails应用程序中立即禁用TurboLink。但是,如果需要Turbolinks提供的功能,请检查jQuery Turbolinks

“但是如果你有一个包含大量$(el)的大型代码库,bind(…)Turbolinks会让你大吃一惊。你的大部分Javascript都会以通常的方式停止工作。这是因为你绑定事件的节点不再存在。”


Ryan Bates在现有JavaScript功能的问题中讨论了TurboLink问题

您需要处理turbo links加载事件,销毁并重新初始化任何日期选择器

// Called when page first loads.
$(function(){
  $('.date-picker').datepicker();
});

// Handle turbolinks page load.
$( document ).on('turbolinks:load', function() {
  $('.hasDatepicker').datepicker("destroy");
  $('.date-picker').datepicker();
});
可能重复的