Ruby On Rails:jQuery datepicker 仅在刷新页面时有效

Posted

技术标签:

【中文标题】Ruby On Rails:jQuery datepicker 仅在刷新页面时有效【英文标题】:Ruby On Rails: jQuery datepicker only works when refresh page 【发布时间】:2017-01-20 08:39:50 【问题描述】:

我遇到的问题是,当我浏览表单页面并单击文本字段上的 date_sent 时,jQuery 应该会弹出一个日期选择器。但是,一开始我什么也没得到,但是当我刷新页面时它就可以工作了。

我几乎可以肯定我的问题出在 turbolinks 上,因为我假设我的 javascript 由于 turbolinks 而没有被加载。但是,我不想删除 turbolinks,因为没有它我的页面渲染速度很慢。我怎样才能做到这一点?

application.js

//= require jquery
//= require jquery-ui/datepicker
//= require jquery_ujs
//= require bootstrap-sprockets
//= require cocoon
//= require turbolinks
//= require_tree .

application.scss

 *= require_self
 *= require jquery-ui/datepicker
 *= require_tree .
 */

@import 'bootstrap-sprockets';
@import 'bootstrap';
@import 'sites';

form.coffee

jQuery ->
    $('#send_date').datepicker()

form.html.erb

<div class="form-group" >
      <%= f.label :date_sent, class: 'control-label' %><br>
      <%= f.text_field :date_sent, id: 'send_date' %>
</div>

【问题讨论】:

【参考方案1】:

您尝试过turbolinks:load 事件吗?

$(document).on "turbolinks:load", -> 

改为:

$(document).ready, -> 

【讨论】:

你能说得更具体些吗?我没有在任何地方使用“$(document).ready, ->”。 尝试使用$(document).on "turbolinks:load", -&gt; 作为coffe文件的第一行

以上是关于Ruby On Rails:jQuery datepicker 仅在刷新页面时有效的主要内容,如果未能解决你的问题,请参考以下文章

Javascript / jQuery / Coffeescript 在 Ruby on Rails 中的作用是啥?

Ruby on Rails 安装 JQuery

Ruby on Rails 6.0.2.2 版如何使用jQuery hover() 方法

带有 jquery datepicker 的 Ruby on rails

Ruby on Rails - Javascript/jQuery 到 Haml

Coffeescript 和 jQuery 无法在特定视图上使用 Ruby on Rails