【发布时间】:2017-06-20 23:22:28
【问题描述】:
我正在尝试为我的 rails 应用程序实现选择的插件和日期选择器,并且在第二个页面访问时遇到问题(不是页面重新加载,重新加载页面实际上会刷新插件并将它们带回来),插件出现然后消失的非常快,几乎就像它们正在重置一样。
我已经尝试搜索此问题,但我并没有真正看到任何关于 rails 的内容,我认为这与脚本的服务方式和引导程序的 css/js 文件有关,但我不太确定并且无法确定。
我的页面加载时也会出现 [缓存未命中],如果这有影响的话。
我尝试过的事情:
- 在 application.js 和 application.css 中切换我的需求顺序
- 移动jQuery初始化插件直接到_form.erb.html页面
- 将 jQuery 移动到 application.js 中的 document.ready 中
- 删除上述 document.ready(并使用 document.bind)
- 在 document.ready 中使用 setTimeout 作为快速修复,以便在它们“重置”后将它们重新设置(这里没有骰子)
- 当我怀疑部分的 js 出于某种奇怪的原因(不是这种情况)覆盖 .chosen 和 .datepicker 时删除部分
这是一些代码,我觉得这是我想念的愚蠢和简单的东西。
//= require rails-ujs
//= require turbolinks
//= require jquery.min
//= require jquery_ujs
//= require jquery-ui
//= require_tree .
//= require chosen.jquery.min
//= require bootstrap-datepicker
$(document).ready(function(){
$('.chosen').chosen(
{
allow_single_deselect: true,
no_results_text: 'No results matched',
width: '200px'
}
);
$('.datepicker').datepicker();
});
和application.css
/*
*= require_tree .
*= require_self
*= require chosen.min
*= require datepicker
*/
有问题的 _form.html.erb
<div class="field">
<%= form.label :customer_id %>
<%# form.text_field :customer_id, id: :order_customer_id %>
<%= collection_select( :order, :customer_id, @customers, :id, :name,{selected: order.customer_id, prompt: false}, { class: 'chosen' }) %>
</div>
<div class="field">
<%= form.label :date %>
<%# form.date_select :date, id: :order_date, class: 'datepicker' %>
<%= form.text_field :date, default: 'Pick a date', class: 'datepicker' %>
</div>
【问题讨论】:
-
您的浏览器控制台有错误吗?
-
我偶尔会收到与日期选择器相关的“无法读取 Object.parseDate 处未定义的属性'split'”,但它似乎没有任何效果。尝试删除日期选择器的要求,但问题仍然存在选择。还记得我已经尝试过 rake assets:clobber 和 rake assets:precompile 没有成功。
标签: jquery css ruby-on-rails jquery-chosen