我有一个 Rails 应用程序,其中使用 gem chosen-rails
(或 selected-sass-bootstrap-rails):在我的 gemfile
中,我有这个:
gem 'chosen-sass-bootstrap-rails'
它以前可以工作,但现在我不断收到此错误 - 我不知道为什么:
[Error] TypeError: undefined is not a function (evaluating '$('.chosen- select').chosen({
allow_single_deselect: true,
no_results_text: 'No results matched',
width: '100%'
})')
我的 application.js
看起来像这样:
//= require jquery
//= require jquery_ujs
//= require bootstrap
//= require jquery.turbolinks
//= require chosen-jquery
//= require scaffold
//= require jquery.purr
//= require best_in_place
//= require bootstrap-datepicker
//= require jquery-fileupload
//= require autocomplete-rails
//= require jquery-ui
//= require jquery.countdown
//= require autocomplete-rails
//= require bootstrapValidator.min
//= require turbolinks
//= require_tree .
在 application.css.scss
中我有这一行:
*= require chosen_bootstrap
我的 HTML(或 (HAML))如下所示:
= select_tag "tag", options_from_collection_for_select(@team_tags, 'name', 'name', params[:tag]), prompt: "All tags", class: 'form-control chosen-select select-ideas-tag', onchange: "window.location.replace('/teams/#{@team.id}/tags/' + this.value + '?search=#{params[:search]}');"
我的 JS(或 CoffeeScript)看起来像这样:
# enable chosen js
$('.chosen-select').chosen
allow_single_deselect: true
no_results_text: 'No results matched'
width: '100%'
有什么想法为什么它不起作用吗?
更新
似乎不仅是 chosen-rails
停止了工作,而且 JS 似乎也完全停止了工作。我的图书馆都没有按预期工作。我尝试过重建和清理我的 Assets ,但没有帮助。
不确定是什么原因导致此问题,或者如何找到主要问题。
有什么想法吗?
最佳答案
可能的原因:
在应用程序中包括 jquery 和选择两次。双重包含其中任何一个都可能导致此错误。
你也可以尝试一下,
//=需要jquery
//= 需要 jquery.turbolinks
//= 需要 jquery_ujs
//= 需要选择-jquery
//=需要脚手架
//= 需要 jquery.purr
//= 需要 jquery-ui
//= 需要引导
//= 需要 jquery.countdown
//= 需要 Turbolink
//= require_tree 。
为什么同时需要 jquery.turbolinks 和turbolinks。您可以禁用涡轮链接并检查吗?
关于javascript - Rails 4 - JavaScript 停止工作,获取 : undefined is not a function,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31079215/