我一直在努力让jQueryUI标签在我的Rails 3.1应用程序上运行,但我总是得到它。
我在我的jquery-rails
application.js.coffee
gem的jQuery和jQueryUI
#= require jquery
#= require jquery-ui
#= require jquery_ujs
# more requires ...
jQuery ->
// regular jQuery stuff
我总是得到TypeError: Object [object Object] has no method 'tabs'
,好像jQueryUI没有正确加载。即使我在控制台中尝试它
我已经检查了jquery-rails
宝石的内容,它就在那里
$ head -n 2 ~/.rvm/gems/ruby-1.9.3-p0/gems/jquery-rails-1.0.18/vendor/assets/javascripts/jquery.js
/*!
* jQuery JavaScript Library v1.7
$ head -n 2 ~/.rvm/gems/ruby-1.9.3-p0/gems/jquery-rails-1.0.18/vendor/assets/javascripts/jquery-ui.js
/*!
* jQuery UI 1.8.16
为什么jQueryUI没有正确加载?我还需要在app配置中设置一些东西来加载jQueryUI吗?有什么方法可以检查它何时被加载?从哪里开始?
我检查了jQueryUI文件本身,它确实包含了标签定义... proof:
$ grep tabs ~/.rvm/gems/ruby-1.9.3-p0/gems/jquery-rails-1.0.18/vendor/assets/javascripts/jquery-ui.js | wc -l
90
答案 0 :(得分:1)
我有这个确切的问题(除了它是可排序的,而不是标签) - 结果我有一套旧的预编译资产踢。删除公共/资产清除了错误(帽子提示为“Rails 3.1 , jQuery UI does not load”)
答案 1 :(得分:0)
在检查它是否正确加载方面,我建议使用插件yepnope.js。它允许您测试条件,并行加载脚本,涵盖错误处理,并具有方便的回调。
答案 2 :(得分:0)
在config / environments / development.rb(或您要编辑的环境文件)中
# Expands the lines which load the assets
config.assets.debug = true
这将使页面呈现缓慢但页面源将显示正在加载的javascript和css的所有源,而不是显示一个大的压缩文件。你可以检查jquery-ui是否是其中之一。
另外,检查是否定义了两次jquery。在这种情况下,$ variable被重新定义和覆盖,并且apis可能在新的定义绑定中不可用。
答案 3 :(得分:0)
我有标签这个问题并且正在吃香蕉。原来我需要预先编译我的资产:
RAILS_ENV=production bundle exec rake assets:precompile
这为我修好了。 (我认为删除上面答案中提到的public / assets文件夹的内容也会有效。)