除非刷新,否则日期选择器不会显示在Rails中

我把日期选择器放在Rails(v4.1.8)中。 我使用eyecon datepicker(过去禁用日期)。 http://www.eyecon.ro/bootstrap-datepicker/

如果我被定向到此页面,则单击日期表单时日期选择器不会显示。 但是,如果我通过chrome + r在chrome中刷新页面。 日期选择器运作良好。 或者,如果我手动输入url栏中的地址并按Enter键,日期选择器也可以。

太奇怪了。 有人可以向我解释一下吗?

另一个事实可能会有所帮助:如果我将代码保存为html而不是使用Rails。 它工作正常。

谢谢

有数百万的时间 – 这是因为turbolinksturbolinks gem让您的网站更快 – 当您点击任何导航链接时,它不会重新加载整个页面,但只会更改它的那些部分(这是它的function的大大简化,请在此处阅读以获取更多详细信息)

当然,你的javascript不会被turbolinks跟踪,因此在加载新内容时不会执行它,所有元素都没有任何钩子或function,没有turbolinks通常没有。 当你刷新页面时,整个页面都被加载并且所有的javascript都被执行,所以所有的工作都按预期工作。

我通常通过定义辅助方法来处理它:

 window.onInit = function(handler) { $(document).on('ready page:change', handler) } 

然后包装所有为其中的每个页面运行的javascript:

 onInit(function() { $('#dpd1').datepicker(); }):