bootstrap-star-rating plugin causes an error: Uncaught TypeError: $(...).rating is not a function
bootstrap-star-rating plugin causes an error: Uncaught TypeError: $(...).rating is not a function
我已经通过 bower 安装了 plugin 并将其包含在 bower.json 文件中:bower install bootstrap-star-rating --save
。在视图中(这是一个 Rails 项目)我有这段代码:
<%= form.text_field :rating,
id: :review_rating,
class: 'form-item large-6 cell',
placeholder: 'Rating*',
required: true %>
我的 js 被 gulp 编译成 public/layout
并出现在 application.js
中。在 config/application.rb
我有这段代码:
config.assets.paths << Rails.root.join('public', 'layout')
因此,layout
目录存在于资产管道中。
我用来初始化星级的代码是:
$('#review_rating').rating({
min: 1,
max: 5,
step: 1,
size: 'sm',
theme: 'krajee-uni'
});
如果插件作为依赖项存在于 bower.json
中,为什么我会收到错误:Uncaught TypeError: $(...).rating is not a function
?
触发错误的函数存在于 bootstrap star-rating github 存储库
的第498
行
$.fn.rating = function (option) {
var args = Array.apply(null, arguments), retvals = [];
args.shift();
this.each(function () {
var self = $(this), data = self.data('rating'), options = typeof option === 'object' && option,
theme = options.theme || self.data('theme'), lang = options.language || self.data('language') || 'en',
thm = {}, loc = {}, opts;
if (!data) {
if (theme) {
thm = $.fn.ratingThemes[theme] || {};
}
if (lang !== 'en' && !$h.isEmpty($.fn.ratingLocales[lang])) {
loc = $.fn.ratingLocales[lang];
}
opts = $.extend(true, {}, $.fn.rating.defaults, thm, $.fn.ratingLocales.en, loc, options, self.data());
data = new Rating(this, opts);
self.data('rating', data);
}
if (typeof option === 'string') {
retvals.push(data[option].apply(data, args));
}
});
switch (retvals.length) {
case 0:
return this;
case 1:
return retvals[0] === undefined ? this : retvals[0];
default:
return retvals;
}
};
该函数未包含在您的资产管道中。
star-rating.js
文件未包含在您的 application.js
中
要测试这个 运行 您的服务器 rails s
,打开您的页面,然后使用 f12
打开 chrome 开发人员工具栏并在源中搜索该文件部分。
在 rails 上 ruby 我不使用 bower 安装插件,也许它足以包含所有相关的 js,css 文件和图像在你的 application.js
、.scss
并在适合您图片的文件夹中。
https://github.com/kartik-v/bootstrap-star-rating
如果您有任何其他问题,请告诉我。
我已经通过 bower 安装了 plugin 并将其包含在 bower.json 文件中:bower install bootstrap-star-rating --save
。在视图中(这是一个 Rails 项目)我有这段代码:
<%= form.text_field :rating,
id: :review_rating,
class: 'form-item large-6 cell',
placeholder: 'Rating*',
required: true %>
我的 js 被 gulp 编译成 public/layout
并出现在 application.js
中。在 config/application.rb
我有这段代码:
config.assets.paths << Rails.root.join('public', 'layout')
因此,layout
目录存在于资产管道中。
我用来初始化星级的代码是:
$('#review_rating').rating({
min: 1,
max: 5,
step: 1,
size: 'sm',
theme: 'krajee-uni'
});
如果插件作为依赖项存在于 bower.json
中,为什么我会收到错误:Uncaught TypeError: $(...).rating is not a function
?
触发错误的函数存在于 bootstrap star-rating github 存储库
的第498
行
$.fn.rating = function (option) {
var args = Array.apply(null, arguments), retvals = [];
args.shift();
this.each(function () {
var self = $(this), data = self.data('rating'), options = typeof option === 'object' && option,
theme = options.theme || self.data('theme'), lang = options.language || self.data('language') || 'en',
thm = {}, loc = {}, opts;
if (!data) {
if (theme) {
thm = $.fn.ratingThemes[theme] || {};
}
if (lang !== 'en' && !$h.isEmpty($.fn.ratingLocales[lang])) {
loc = $.fn.ratingLocales[lang];
}
opts = $.extend(true, {}, $.fn.rating.defaults, thm, $.fn.ratingLocales.en, loc, options, self.data());
data = new Rating(this, opts);
self.data('rating', data);
}
if (typeof option === 'string') {
retvals.push(data[option].apply(data, args));
}
});
switch (retvals.length) {
case 0:
return this;
case 1:
return retvals[0] === undefined ? this : retvals[0];
default:
return retvals;
}
};
该函数未包含在您的资产管道中。
star-rating.js
文件未包含在您的 application.js
要测试这个 运行 您的服务器 rails s
,打开您的页面,然后使用 f12
打开 chrome 开发人员工具栏并在源中搜索该文件部分。
在 rails 上 ruby 我不使用 bower 安装插件,也许它足以包含所有相关的 js,css 文件和图像在你的 application.js
、.scss
并在适合您图片的文件夹中。
https://github.com/kartik-v/bootstrap-star-rating
如果您有任何其他问题,请告诉我。