【问题标题】:Javascript order on Ruby on Rails appRuby on Rails 应用程序上的 Javascript 订单
【发布时间】:2013-12-30 16:20:54
【问题描述】:

我在我的 Ruby on Rails 3 应用程序的视图页面中添加了一个滑块和新闻代码。

<%= render 'layouts/main_slider' %>
<%= render 'layouts/news_slider' %>

这些页面有以下脚本,我收到的错误是:

Uncaught TypeError: Object [object Object] has no method 'ticker'
Uncaught TypeError: Cannot set property 'defaults' of undefined 

对于这个脚本:

<%= javascript_include_tag "application" %>

<script> 
$(function () {
$('#js-news').ticker();
});
</script>

<script>
$.fn.ticker.defaults = {
    speed: 0.10,            
    ajaxFeed: false,
    feedUrl: '',
    feedType: 'xml',
    displayType: 'fade',
    htmlFeed: true,
    debugMode: true,
    controls: true,
    titleText: 'Latest',    
    direction: 'ltr',   
    pauseOnItems: 3000,
    fadeInSpeed: 600,
    fadeOutSpeed: 300
};  
</script>

我也得到一个错误:

Uncaught TypeError: Object [object Object] has no method 'nivoSlider'

对于这个脚本:

<%= javascript_include_tag "application" %>
<script type="text/javascript"> 
$(window).load(function() {
    $('#mainslider').nivoSlider({
          effect:'fade',
          pauseTime:8000,
          animSpeed: 500
    });
});
</script>

这是我的 application.js 文件:

//= require jquery
//= require jquery_ujs
//= require bxslider
//= require bootstrap
//= require jquery.ticker.js
//= require jquery.nivo.slider.js
//= require jquery-1.10.2.min.js
//= require bootstrap.min.js
//= require jquery-tablesorter
//= require_tree .

这是我的 Gemfile:

source 'https://rubygems.org'

gem 'rails', '3.2.11'
gem 'mysql2'
gem 'bootstrap-sass', '2.1'
gem 'bcrypt-ruby', '3.0.1'
gem 'faker', '1.0.1'
gem 'will_paginate', '3.0.3'
gem 'bootstrap-will_paginate', '0.0.6'
gem 'jquery-rails', '2.0.2'
gem 'paperclip', "~> 3.0"
gem "rest-client", "~> 1.6.7"
gem 'jquery-tablesorter'
gem 'client_side_validations'
gem 'bxslider-rails'

group :development, :test do
gem 'sqlite3', '1.3.5'
gem 'rspec-rails', '2.11.0'
end

group :assets do
 gem 'sass-rails',   '3.2.5'
 gem 'coffee-rails', '3.2.2'
 gem 'uglifier', '1.2.3'
end

group :test do
gem 'capybara', '1.1.2'
end

group :development do
gem 'annotate', '2.5.0'
end

我做了一个捆绑安装和一个 rake assets:clean && rake assets:precompile 我的 .js 文件中的顺序是否错误?我错过了宝石吗?谢谢

【问题讨论】:

    标签: javascript jquery ruby-on-rails ruby-on-rails-3 rubygems


    【解决方案1】:

    您的包含顺序似乎有问题。 您需要在依赖它的任何东西之前包含 jQuery,之后不要再次加载它(否则任何插件所做的更改通常都会消失)。

    如果 //= require jquery 加载 jQuery(可能是这种情况,否则你所有的插件都会抛出关于未定义的 jQuery$ 的错误),那么你可能应该去掉上面写着 //= require jquery-1.10.2.min.js 的行.实际上,您可能也应该删除该文件(除非jquery.js 只是一个符号链接),以免//= require_tree . 无论如何都包含它。

    【讨论】:

    • 我删除了 //= require jquery-1.10.2.min.js 正如你告诉我的那样,所有错误都消失了。正在覆盖,谢谢!
    猜你喜欢
    • 2012-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-15
    • 2017-12-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多