rails3 jquery自动完成:Javascript类型错误
轨道3.2.11 我遵循了此gem的说明:。当我加载想要自动完成字段的页面时,Jquery、Jquery ui、autocomplete-rails.js等都会被加载。但是,在加载页面时,我在错误控制台中得到以下信息: TypeError:“undefined”不是函数(正在计算“this.live”) I解压js文件,这是引用的函数: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(
(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副本。这就是问题所在