首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >导致未定义错误的RailsGem设置

问导致未定义错误的RailsGem设置
EN

Stack Overflow用户
提问于 2019-08-16 12:53:04
回答 3查看 37关注 0票数 1

下面的设置正在生成ReferenceError: jQuery is not defined和随后的多个TypeError: $ is undefined错误,从而导致脚本不触发。

Gemfile调用

代码语言:javascript
复制
gem 'jquery-rails'
gem 'jquery-ui-rails'
gem 'rails-jquery-autocomplete'

,它被翻译成Gemfile.lock

代码语言:javascript
复制
jquery-rails (4.3.5)
  rails-dom-testing (>= 1, < 3)
  railties (>= 4.2.0)
  thor (>= 0.14, < 2.0)
jquery-ui-rails (6.0.1)
  railties (>= 3.2.16)

而application.js是用

代码语言:javascript
复制
// require jquery3
// require jquery-ujs
// require jquery-ui/widgets/autocomplete
// require jquery.Jcrop
//
//= require rails-ujs
//= require autocomplete-rails
//= require activestorage
//= require turbolinks
//= require foundation
//= require rails.validations

因此,这样的元素

代码语言:javascript
复制
<script>
//<![CDATA[

$("input[type=radio]").on("change", function() {  [...]

和

代码语言:javascript
复制
  <script>
    $(document).foundation();
  </script>

不要开火,因为TypeError: $ is undefined的后果。

另一个rails 5.2应用程序是以相同的方式定义的,不会生成这样的错误。这个装置有什么问题(或者我漏掉了什么)?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-08-16 13:10:49

在你的application.html.erb里,你有这一行吗?

application.html.erb

代码语言:javascript
复制
  <%= javascript_include_tag 'application', 'data-turbolinks-track': true %>

并尝试用这种方式编写application.js (可能在jquery之前忘记了相等)

代码语言:javascript
复制
//= require jquery 
票数 1
EN

Stack Overflow用户

发布于 2019-08-16 13:13:06

在rails应用中

默认情况下不包括jQuery。让我们将其添加到Gemfile中。

代码语言:javascript
复制
gem 'jquery-rails'

jQuery创业板包含jQuery文件。安装创业板

代码语言:javascript
复制
bundle install

要在我们的应用程序中包含jQuery文件,需要在app/assets/javascripts/application.js上设置几个文件

您需要删除rails-ujs,因为您使用jquery_ujs的目的是相同的。

代码语言:javascript
复制
//= require jquery3
//= require jquery_ujs
//= require_tree .

在你的file.js上

代码语言:javascript
复制
$(document).ready(function() {
  console.log("All working fine");
})

或者在页面上使用file.js之前包括它。

票数 0
EN

Stack Overflow用户

发布于 2019-08-16 13:23:25

试着用这个,我做的是移除鼻涕。如果这样做有效,那么在如何以不正确的顺序加载库时会出现问题。

代码语言:javascript
复制
// require jquery3
// require jquery-ujs
// require jquery-ui/widgets/autocomplete
// require jquery.Jcrop
//
//= require rails-ujs
//= require autocomplete-rails
//= require activestorage
//= require foundation
//= require rails.validations
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57525006

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档