【问题标题】:JavaScript/Coffeescript is not executing unless I refresh除非我刷新,否则 JavaScript/Coffeescript 不会执行
【发布时间】:2014-09-17 22:54:05
【问题描述】:

我有一些咖啡脚本:

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 似乎根本没有执行(除非我刷新,否则没有输出)。

我该如何解决这个问题?

【问题讨论】:

  • “不起作用”具体是什么意思?服务器日志或 JavaScript 控制台中的任何内容? $.get 是否执行?它的回调是否被调用? GET 请求是否命中您的服务器?
  • 对不起。文本字段不会变成日历,只是保持文本字段。
  • 您的showdatepicker() 调用是否真的在$ -&gt; 之外,或者它是否真的与其余部分一起缩进?
  • 应该在里面吧?在文件加载? jsfiddle 是复制粘贴。
  • 我向您展示了如何确定它。时间问题取决于各种因素,包括浏览器。

标签: javascript jquery css ruby-on-rails coffeescript


【解决方案1】:

我遇到的问题是在 Gemfile 中:turbolinks。 Turbolinks 的行为与设计相同——除非我刷新页面,否则它不会重新加载页面。这在我的 IE 浏览器中起作用的原因是当 turbolinks 失败(旧浏览器)时,它会优雅地失败并允许重新加载页面(我从 Rails Cast #390 学到了所有这些。

我需要做的就是

  1. 将我的代码放入变量中

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

  2. 在文档就绪时调用此变量

    $(文档).ready(准备好)

  3. 告诉 turbolinks

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

【讨论】:

    猜你喜欢
    • 2021-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-28
    • 2012-11-12
    • 1970-01-01
    • 2017-02-16
    • 1970-01-01
    相关资源
    最近更新 更多