Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/460.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Rails 4:jquery turbolinks导致;未捕获类型错误:无法读取属性';长度';“未定义”的定义;_Javascript_Ruby On Rails_Ruby On Rails 4_Turbolinks - Fatal编程技术网

Javascript Rails 4:jquery turbolinks导致;未捕获类型错误:无法读取属性';长度';“未定义”的定义;

Javascript Rails 4:jquery turbolinks导致;未捕获类型错误:无法读取属性';长度';“未定义”的定义;,javascript,ruby-on-rails,ruby-on-rails-4,turbolinks,Javascript,Ruby On Rails,Ruby On Rails 4,Turbolinks,我的Javascript仅在Rails中刷新页面后加载。经过研究,推荐的解决方案似乎是使用TurboLink。然而,当我包括jquery turbolinks gem时,jquery本身似乎崩溃了,这可能是由于某些依赖性错误 Uncaught TypeError: Cannot read property 'length' of undefined 下面是我的application.js文件的样子 //= require turbolinks //= require angular/angul

我的Javascript仅在Rails中刷新页面后加载。经过研究,推荐的解决方案似乎是使用TurboLink。然而,当我包括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就会崩溃。如果我试着将它放在requirejquery之前,它就找不到jquery文件,并且说$不是函数。

在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正确工作的方式

在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正确工作的方式

您应该用这个
/=require jQuery替换turbolinks。turbolinks
用这个
/=require turbolinks
替换
/=require jQuery。turbolinks