我有一些 CoffeeScript :
http://jsfiddle.net/jdell64/9v646/
利用 jquery ui datepicker。在页面加载时,它获取一组可用日期(一次一个月)并显示它们。这适用于 IE,但不适用于 firefox 或 chrome。我必须刷新页面才能使其正常工作。
基本上,
$ ->
full_days = []
partial_days = []
getDays = (date) ->
# return the available days for a given month (ajax call)
getDays()
formatDays = (date) ->
# apply a 'full-day' class to days with 24 hours available and 'partial-day' if they have < 24 hours
availableHours = (day) ->
# manipulate the json response and make an array
showdatepicker = ->
$('.datepicker').datepicker(
...
# make my text field a datepicker
)
showdatepicker()
我试图只留下准系统,但我可以发布所有内容。
如何让 jquery-UI datepicker 在页面加载之前以及每次更改月份时对数据库进行 ajax 调用?
编辑:
我在 coffeescript 中添加了一些 console.log()。我把一个放在最开始。除非我刷新页面,否则 javascript 似乎根本没有执行(除非我刷新,否则没有输出)。
我该如何解决这个问题?
最佳答案
我遇到的问题是在 Gemfile:turbolinks 中。 Turbolinks 的行为符合设计——除非我刷新页面,否则它不会重新加载页面。这在我的 IE 浏览器中起作用的原因是当 turbolinks 失败时(旧浏览器)它优雅地失败并允许重新加载页面(我从 Rails Cast #390 学到了所有这些。
我需要做的就是
将我的代码放在一个变量中
准备好 = -> (我所有的代码)
在文档准备好时调用此变量
$(文档).ready(就绪)
告诉 turbolinks 这件事
$(document).on('page:load', ready)
关于除非我刷新,否则 JavaScript/Coffeescript 不会执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24966674/