在Ruby on Rails 4应用程序中,我有一个使用jQuery DatePicker的表单(来自jquery-ui-rails
Gem。
所以我需要打电话
$('.datepicker').datepicker();
每次呈现我的表单。
我从这开始(在我的控制器特定.js.coffee
文件中。)
$ ->
$('.datepicker').datepicker
直到我遇到Turbolinks问题并且不得不改为:
ready = ->
$('.datepicker').datepicker();
$(document).ready = ready
$(document).on 'page:change', ready
但是在按下提交按钮后仍然有问题,并且存在一个(或多个)错误,因此表单被重新呈现,但没有一个处理程序(document.ready
和document.on page:change
)被调用
我已将此代码放在application.js
$(function(){
console.log("application.js -> ready")
})
我可以在控制台中看到正在调用它,但是控制器特定的.js文件中定义的函数不是。
所有文件似乎都已正确加载(<script>
部分中有<header>
行;并显示在Chrome的“来源”标签中。
答案 0 :(得分:1)
我不清楚上面的语法,但是从javascript / jquery的角度来看:
$(document).ready = ready
这不会注册一个函数来调用ready事件,它会破坏你应该调用的就绪函数来注册一个监听器。