2011-12-08 27 views
3

我试图在Rails 3.1.3应用程序中引入jQuery UI自动完成功能。它没有做任何事情,在Chrome开发者工具检查脚本,我看到以下内容:jQuery UI自动完成引发未捕获的TypeError:对象没有方法'自动完成'

jQuery(function() { 
    return $("#location").autocomplete({ 
    locations.js:3 Uncaught TypeError: Object #<Object> has no method 'autocomplete' 
    source: ["foo", "food", "four"] 
    }); 
}); 

我已经包括jQuery用户界面中的application.js:

//= require jquery 
//= require jquery-ui 
//= require jquery_ujs 
//= require_tree . 

我的CoffeeScript有如下:

jQuery -> 
    $('#location').autocomplete 
    source: ["foo", "food", "four"] 

我错过了什么!?

+0

jQuery和jQuery UI是否加载到文档? 检查开发人员工具中的网络选项卡。 在文档准备好后,您是否调用$('#location')。autocomplete()? – anderssonola

+0

@soderslatt是的。我看到jquery.js然后jquery-ui.js,然后在locations.js之前的其他人。 “jQuery - >”为我准备好文档。 – hgujral

+1

您是否包含Prototype等其他JavaScript库?这可能是一个jQuery冲突问题。 http://api.jquery.com/jQuery.noConflict/ – anderssonola

回答

2

事实证明,因为我也有active_admin,“// = require_tree”。正在从active_admin/vendor路径添加jQuery的旧版本,该路径删除了自动填充方法。摆脱了“// = require_tree”。现在并明确添加“// =需要位置”,它工作得很好。

+0

为了增加,同样的事情基本上发生在我身上,但是因为我使用的是WYMeditor,而且它还带有旧版本的JQuery。 –

+0

你可以请一步一步解释这一点吗?我有同样的错误,但我使用引导程序。 – Faizan