【问题标题】:Rails 4: jquery-turbolinks causing "Uncaught TypeError: Cannot read property 'length' of undefined"Rails 4:jquery-turbolinks 导致“未捕获的类型错误:无法读取未定义的属性‘长度’”
【发布时间】:2015-10-16 12:32:16
【问题描述】:

我的 Javascript 仅在 Rails 中刷新页面后加载。经过调查,推荐的解决方案似乎是使用 turbolinks。但是,当我包含 jquery-turbolinks gem 时,JQuery 本身似乎可能由于某些依赖错误而崩溃。

Uncaught TypeError: Cannot read property 'length' of undefined

这是我的 application.js 文件的样子

//= require turbolinks
//= require angular/angular.min
//= require angular/angular-route.min
//= require jquery
//= require jquery_ujs
//= require jquery-ui.min
//= require jquery.turbolinks
//= require chosen-jquery
//= require bootstrap
//= require conversations
//= require analytics
//= require common
//= require jquery.infinite-pages
//= require jquery.contenthover
//= require overlay
//= require tag-it.min
//= require_tree .
//= require_tree ../../../vendor/assets/javascripts/.

总而言之,如果我不使用 jquery-turbolinks,我的 JS 将在页面刷新之后才会加载。如果我确实使用它,jQuery 就会崩溃。如果我尝试把它放在require jquery之前,它找不到JQuery文件并说$不是一个函数。

【问题讨论】:

  • 你应该用这个//= require turbolinks 替换//= require jquery.turbolinks

标签: javascript ruby-on-rails ruby-on-rails-4 turbolinks


【解决方案1】:

在 jQuery 之后排序 jQuery.turbolinks

//= require turbolinks
//= require angular/angular.min
//= require angular/angular-route.min
//= require jquery
//= require jquery.turbolinks
//= require jquery_ujs
//= require jquery-ui.min

这就是 jQuery.turbolinks 正常工作的方式

【讨论】:

    猜你喜欢
    • 2019-11-22
    • 2013-11-24
    • 2021-05-03
    • 2020-07-19
    相关资源
    最近更新 更多