Javascript 未捕获类型错误:未定义不是函数jquery自动完成
我正在尝试使用jquery autocomplete组件。我想在autocomplete中显示图像。因此我必须编写_renderMenu和_renderItem函数。我编写了一个代码:Javascript 未捕获类型错误:未定义不是函数jquery自动完成,javascript,jquery,jquery-ui,autocomplete,Javascript,Jquery,Jquery Ui,Autocomplete,我正在尝试使用jquery autocomplete组件。我想在autocomplete中显示图像。因此我必须编写_renderMenu和_renderItem函数。我编写了一个代码: var _filterUser = $('#filterUser').autocomplete({ source: onEditLoadUsers, select: onEditSelectUser,
var _filterUser = $('#filterUser').autocomplete({
source: onEditLoadUsers,
select: onEditSelectUser,
focus: onEditFocusUser
});
$('#filterUser').data("autocomplete")._renderItem= function( ul, item ){
console.log('coming here');
return $( "<li>" )
.append( $( '<img src="'+item.photo+'" />' ) )
.appendTo( ul );
};
$('#filterUser').data("autocomplete")._renderMenu= function(ul,items){
var that = this;
console.log('ul is')
console.log(ul);
console.log(items);
$.each( items, function( index, item ) {
that._renderItemData( ul, item );
});
};
我正在使用jquery 1.8.3和jquery UI 1.8。请指导如何解决此错误???您不能以这种方式扩展对象 试着这样做:
(function ($, undefined) {
var ac = $.ui.autocomplete.prototype;
if (typeof $.uix !== "object") { $.uix = {}; }
ac = $.extend({}, ac, {
_renderItem: function (ul, item) {
console.log('coming here');
return $("<li>")
.append($('<img src="' + item.photo + '" />'))
.appendTo(ul);
},
_renderMenu: function (ul, items) {
var that = this;
console.log('ul is')
console.log(ul);
console.log(items);
$.each(items, function (index, item) {
that._renderItemData(ul, item);
});
}
});
$.uix.autocomplete = ac;
$.widget("uix.autocomplete", $.uix.autocomplete);
})(jQuery);
(函数($,未定义){
var ac=$.ui.autocomplete.prototype;
if(typeof$.uix!=“object”){$.uix={};}
ac=$.extend({},ac{
_renderItem:功能(ul,项目){
console.log('coming here');
返回$(“”)
.附加($('')
.附录(ul);
},
_renderMenu:功能(ul,项目){
var=这个;
console.log('ul is')
控制台日志(ul);
控制台日志(项目);
$。每个(项目、功能(索引、项目){
即._renderItemData(ul,项目);
});
}
});
$.uix.autocomplete=ac;
$.widget(“uix.autocomplete”,$.uix.autocomplete);
})(jQuery);
这一点。_renderItemData(ul,项目);你是指_renderItem(ul,item)吗?不,我是指_renderItemData,正如你在我复制粘贴的代码中所看到的。我想在_renderMenu中必须使用_renderItemData。
(function ($, undefined) {
var ac = $.ui.autocomplete.prototype;
if (typeof $.uix !== "object") { $.uix = {}; }
ac = $.extend({}, ac, {
_renderItem: function (ul, item) {
console.log('coming here');
return $("<li>")
.append($('<img src="' + item.photo + '" />'))
.appendTo(ul);
},
_renderMenu: function (ul, items) {
var that = this;
console.log('ul is')
console.log(ul);
console.log(items);
$.each(items, function (index, item) {
that._renderItemData(ul, item);
});
}
});
$.uix.autocomplete = ac;
$.widget("uix.autocomplete", $.uix.autocomplete);
})(jQuery);