除非我刷新,否则 JavaScript/Coffeescript 不会执行

标签 javascript jquery css ruby-on-rails coffeescript

我有一些 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 学到了所有这些。

我需要做的就是

  1. 将我的代码放在一个变量中

    准备好 = -> (我所有的代码)

  2. 在文档准备好时调用此变量

    $(文档).ready(就绪)

  3. 告诉 turbolinks 这件事

    $(document).on('page:load', ready)

关于除非我刷新,否则 JavaScript/Coffeescript 不会执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24966674/

相关文章:

javascript - Angular 5 : Lazy Loading is not working properly with ng build - -prod with Angular-CLI 1. 7.x

javascript - CSS3 关键帧动画是否比属性转换更流畅?

javascript - jQuery id 选择器和 validate.js

javascript - 将 'Grooveshark' 条目添加到 Google 的黑色导航栏

html - 试图把文字放在图片下面会弄乱对齐

jquery - 用 Jquery 圈出背景图片

javascript - 响应式图像网格

javascript - 在 Angular ngOptions 中选择时设置所选选项

jquery - 如何首先执行 Ajax 调用来获取纬度/经度,然后加载带有标记的 Google map ?

css - 减少屏幕宽度后网站页脚上的链接将不起作用