【问题标题】:Rails 3 Javascript Not WorkingRails 3 Javascript不工作
【发布时间】:2012-04-03 12:24:26
【问题描述】:

我在我的 Rails 3.2 应用程序中包含了带有 <%= javascript_include_tag "application" %> 的 Javascript。而且,我在运行时包含在最终 application.js 文件中的 company.js.coffee 文件中包含了以下 CoffeeScript:

$("article h2 a").click (e) ->
    $("article div").hide()
    $(@hash).slideToggle()
    e.preventDefault()
$("article div:not(#1)").hide()

然而,该脚本根本不起作用,尽管它在从中复制的原始 HTML 文件中运行(尽管不是在 CoffeeScript 中)。同样,AJAX 表单请求似乎也不起作用。

有谁知道为什么会发生这种情况?我有什么遗漏吗?

【问题讨论】:

  • 您的开发控制台有任何错误吗?尝试在那里发出警报(“是的,它正在工作”)。
  • 我只知道您可以在其中运行传统的 rails 命令。但是,我尝试从字面上添加一个 JS 警报,它抛出了一个无方法错误。这是你的意思吗?抱歉,我是一名 PHP 程序员,对 Rails(尤其是 3.2)比较陌生。
  • 抱歉让您感到困惑,我的意思是在您的 CofeeScript 文件中 :-)
  • 问题也可能是您在运行脚本之前没有等待加载文档。您可以尝试将其包装在 $(document).ready( -> ... 或将包含 javascript 文件的内容移到页面末尾(就在

标签: jquery ruby-on-rails ruby-on-rails-3 coffeescript


【解决方案1】:

如果article代表一个元素id或者类,你需要用.article或者#article来选择它。我一直都忘记了。

【讨论】:

  • 我只是用它来选择一般的 HTML5 文章标签,但让我尝试添加一个类或 ID,看看现在是否有效......
  • 不,当我在 CoffeeScript 中将其从仅 article 更改为 #article 并在 HTML 中更改时,同样的问题。
  • 这些元素中的任何一个是通过 ajax 加载的吗?如果是这样,您将需要使用 .on ($("article h2 a").on("click", (e) ->...
【解决方案2】:

大约一周前发生在我身上,这是我的解决方案。首先,我确保我的 application.js 文件在文件开头有这个。

//= require jquery
//= require jquery_ujs
//= require_self
//= require_tree .

另一件事是确保 rails 没有使用公共目录。有时您将同时拥有公共资产和资产,但请确保您告诉 Rails 使用资产。 Rails 3.2 应该自动包含它。打开您的 config>>application.rb 并检查以下内容。

# Enable the asset pipeline
config.assets.enabled = true
config.assets.version = '1.0'

【讨论】:

  • 我在这个列表中唯一缺少的是//= require_self,我添加了它,但它仍然不起作用。但是你给小费!
【解决方案3】:

我终于找到了答案(我应该先尝试一下)。我假设 Rails 在将其他文件包含在资产文件夹中时,会自动在 application.js 文件中包含 $ -> 开启程序。但似乎您需要为每个人都这样做。所以,我只是在一切之前添加了$ ->,它现在可以工作了。

对于其他阅读相同问题的人,请确保 $ 选择器没有被任何其他函数使用,否则您需要执行完整的 CoffeeScript JQuery 函数参考。

感谢大家的帮助!

【讨论】:

    【解决方案4】:

    我已通过删除 %RAILS_ROOT/lib/assets/ 文件夹中的所有文件解决了同样的问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多