rails3 jquery自动完成:Javascript类型错误

rails3 jquery自动完成:Javascript类型错误,javascript,ruby-on-rails-3,jquery-autocomplete,Javascript,Ruby On Rails 3,Jquery Autocomplete,轨道3.2.11 我遵循了此gem的说明:。当我加载想要自动完成字段的页面时,Jquery、Jquery ui、autocomplete-rails.js等都会被加载。但是,在加载页面时,我在错误控制台中得到以下信息: TypeError:“undefined”不是函数(正在计算“this.live”) I解压js文件,这是引用的函数: (function(jQuery) { var self = null; jQuery.fn.railsAutocomplete = function(

轨道3.2.11

我遵循了此gem的说明:。当我加载想要自动完成字段的页面时,Jquery、Jquery ui、autocomplete-rails.js等都会被加载。但是,在加载页面时,我在错误控制台中得到以下信息:

TypeError:“undefined”不是函数(正在计算“this.live”)

I解压js文件,这是引用的函数:

(function(jQuery)
{
  var self = null;
  jQuery.fn.railsAutocomplete = function() {
    return this.live('focus',function() {
      if (!this.railsAutoCompleter) {
        this.railsAutoCompleter = new jQuery.railsAutocomplete(this);
      }
    });
  };
有人知道发生了什么吗?因为我没有在任何地方使用“$”,所以noConflict选项似乎并不重要,而且任何一种方法都不能解决问题。我没有对autocomplete-rails.js做任何更改


奇怪的是,我发誓这在某种程度上是有效的,但我一辈子都不知道是什么改变了它

是的,原来我有一个错误的javascript\u include\u标记,它加载了jquery的另一个副本。这就是问题所在

我相信原始海报自己的答案也是解决方案的一部分。使用Rails3.2.13、jQuery1.9.0和jQueryUI1.9.2。更全面地说,我还:

  • 将rails3 jquery autocomplete升级到最新版本(从1.0.9升级到1.0.11,当时我在变更日志中看到:“如果可能,请使用jquery.on()而不是.live()
  • 删除了可能冗余或冲突的jquery包含
  • 重新排序的includes,特别是将underline.js放在autocomplete rails之后
  • 缓存和已编译资产的完全停止和清除

在前3步之后,坏的行为仍然存在(在每一步之后,我只重新启动服务器)。最后一步是出于懒惰,但谢天谢地,这表明上述组合是有效的。

Yup,原来我有一个错误的javascript\u include\u标记加载了另一个jquery副本。这就是问题所在