【发布时间】:2013-10-30 16:35:09
【问题描述】:
在 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 文件中定义的函数不是。
所有文件似乎都已正确加载(它们在<header> 部分中有一个<script> 行;并出现在Chrome 的Sources 选项卡中。
【问题讨论】:
-
我不清楚上面的语法,但从 javascript/jquery 的角度来看,
$(document).ready = ready没有注册一个函数来调用 ready 事件,它破坏了你的ready函数应该调用来注册一个监听器。 -
@MikeEdwards,请将您的评论作为回复,以便我将其作为答案进行检查!我需要删除
=标志...
标签: javascript jquery ruby-on-rails ruby turbolinks