【问题标题】:Ruby on Rails project not recognizing jQueryRuby on Rails 项目无法识别 jQuery
【发布时间】:2014-11-23 18:53:59
【问题描述】:

我有一个项目,我需要将 jQuery 用于我的 javascript 文件。我收到一条错误消息,告诉我“参考错误:$ 未定义。”当我从一行代码加载我的页面时

$(window).load(function()

完整的功能在play.html.erb sn-p 下面。我相信这是一个 jQuery 错误。

我正在使用 Ruby 2.1.2p95 和 Rails 4.1.6。

我已经对此进行了一些研究,以了解如何让 jQuery 工作,但没有任何帮助。我看了Installing jQuery in Rails 3.2.13

我尝试将<%= javascript_include_tag "//ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js" %> 放入我的 html.erb 文件中,该文件包含我尝试在其中使用 jquery 的 javascript 文件

我也尝试将<%= javascript_include_tag :application %> 放在那里。

有人建议将整个文件放入我的 app/assets/javascript 中,所以我下载了 jquery-2.1.1.min,js 并将其放入其中,然后将 <%= javascript_include_tag "jquery-2.1.1.min" %> 放入 html.erb 文件中并放入Rails.application.config.assets.precompile += %w( jquery-2.1.1.min.js ) 在我的 assets.rb 中,并通过终端预编译了我的资产。

我已将gem 'jquery-rails' 放入我的gemfile 中。

我也试过https://rubygems.org/gems/jquery-rails上的2个方向

我的 application.js 中有通常指定的要求

为了以防万一,我尝试了所有操作后运行bundle install

play.js

$(window).load(function()
{
    var c = document.getElementById("charhealthbar");
    var ctx = c.getContext("2d");
    var health = 5;
    ctx.fillStyle = "#FF0000";
    ctx.fillRect(0, 0, (health / 100) * 140, 25);
});

assets.rb

 Rails.application.config.assets.version = '1.0'   
 Rails.application.config.assets.precompile += %w( creation.css )
 Rails.application.config.assets.precompile += %w( Main.css )
 Rails.application.config.assets.precompile += %w( creation.js )
 Rails.application.config.assets.precompile += %w( play.css)
 Rails.application.config.assets.precompile += %w( play.js )
 Rails.application.config.assets.precompile += %w( jquery-2.1.1.min.js )

play.html.erb

  <%= stylesheet_link_tag "Main.css" %>
  <%= stylesheet_link_tag "play.css" %>
  <%= javascript_include_tag "play" %>
  <%= javascript_include_tag :application %>
  <%= javascript_include_tag "jquery-2.1.1.min" %>

application.js

//= require jquery
//= require jquery_ujs
//= require creation
//= require_tree .

宝石文件

source 'https://rubygems.org'
gem 'rails', '4.1.6'
gem 'pg'
gem 'sass-rails', '~> 4.0.3'
gem 'uglifier', '>= 1.3.0'
gem 'coffee-rails', '~> 4.0.0'
gem 'turbolinks'
gem 'jbuilder', '~> 2.0'
gem 'sdoc', '~> 0.4.0',          group: :doc
gem 'spring',        group: :development
gem 'jquery-rails'

我的 app/assets/javascripts 文件夹中目前还有 jquery-2.1.1.min.js。 任何有关修复此错误的帮助将不胜感激。

【问题讨论】:

  • 您是否尝试通过浏览器控制台进行调试?只有一个错误吗?

标签: jquery ruby-on-rails ruby


【解决方案1】:

你应该把"play"的包含标签放在jquery的包含标签之后:

  <%= stylesheet_link_tag "Main.css" %>
  <%= stylesheet_link_tag "play.css" %>
  <%= javascript_include_tag "jquery-2.1.1.min" %>
  <%= javascript_include_tag :application %>
  <%= javascript_include_tag "play" %>

【讨论】:

  • 我花了很多时间,这很奏效。谢谢你。你有一个很好的资料来源可以解释这一点吗?
猜你喜欢
  • 2023-04-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-13
相关资源
最近更新 更多