jquery $(document).ready在提交后没有被调用

时间:2013-10-30 16:35:09

标签: javascript jquery ruby-on-rails ruby turbolinks

在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.readydocument.on page:change)被调用

我已将此代码放在application.js

$(function(){
    console.log("application.js -> ready")
})

我可以在控制台中看到正在调用它,但是控制器特定的.js文件中定义的函数不是。

所有文件似乎都已正确加载(<script>部分中有<header>行;并显示在Chrome的“来源”标签中。

1 个答案:

答案 0 :(得分:1)

我不清楚上面的语法,但是从javascript / jquery的角度来看:

$(document).ready = ready

这不会注册一个函数来调用ready事件,它会破坏你应该调用的就绪函数来注册一个监听器。