jquery tablesorter(Rails,Turbolinks)的未捕获类型错误

Uncaught TypeError with jquery tablesorter (Rails, Turbolinks)

我在开发 Rails 应用程序时遇到一些奇怪的行为。我正在尝试使用 jquery-tablesorter gem 并取得了不同的成功。基本上,我创建的页面在页面加载后不断在控制台中给我以下错误:

Uncaught TypeError: $(...).tablesorter is not a function
(anonymous function) @ VM604:4
m.Callbacks.j @ jquery.min.js:2
m.Callbacks.k.add @ jquery.min.js:2
m.fn.ready @ jquery.min.js:2
(anonymous function) @ VM604:2
executeScriptTags @ turbolinks.js?body=1:227
changePage @ turbolinks.js?body=1:197
xhr.onload @ turbolinks.js?body=1:107

奇怪的是,如果我在页面打开并显示错误后刷新页面,那么一切正常,控制台中没有错误。我猜测 jquery 库在 jquery-tablesorter 之前没有加载。此外,我怀疑这与 turbolinks 有关,因为我在 twitter-boostrap-rails gem 之前遇到过类似的错误,但能够通过重新排序我的 [=] 来修复它19=] 文件。但我似乎没有做任何事情来解决这个错误。这是我的 application.js 文件的当前状态:

//= require jquery
//= require jquery.turbolinks
//= require jquery_ujs  
//= require twitter/bootstrap
//= require bootstrap-switch
//= require jquery-tablesorter
//= require_tree .
//= require turbolinks

如有任何修复错误的建议,我们将不胜感激。

好吧...原来我在尝试使用 Google OAuth 登录时在我的一个页面底部有一个流氓 <script> 标签。 <script> 标签调用了旧版本的 jquery,它与本应从我的 application.js 文件加载的版本冲突。

总之,去掉流氓 script 标签,它修复了所有问题。仅供参考,这是 application.js 文件

的最终版本
//= require jquery
//= require jquery_ujs
//= require twitter/bootstrap
//= require_tree .
//= require bootstrap-switch
//= require jquery-tablesorter
//= require turbolinks

我认为其他命令也可能有效,但目前这不会给我带来任何问题。