Uncaught TypeError: undefined не является функцией автозаполнения jquery

0

Я пытаюсь использовать jquery autocomplete component.i хочу показать изображения в autocomplete.so мне нужно написать _renderMenu и _renderIItem function.i написал код:

 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 );
     });                       
 };

если я удаляю функцию _renderItem и функцию _renderMenu, тогда работает простой автозаполнение, но когда я добавляю эти две функции, это дало мне ошибку:

Uncaught TypeError: undefined is not a function FullCalendar?sfdc.tabName=01ri0000000sqRT:359
(anonymous function) FullCalendar?sfdc.tabName=01ri0000000sqRT:359
v.extend.each jquery.min.js:2
$.data._renderMenu FullCalendar?sfdc.tabName=01ri0000000sqRT:358
a.widget._suggest jquery-ui.min.js:5
a.widget.__response jquery-ui.min.js:5
(anonymous function) jquery-ui.min.js:5
onEditLoadUsers FullCalendar?sfdc.tabName=01ri0000000sqRT:779
a.widget._search jquery-ui.min.js:5
a.widget.search jquery-ui.min.js:5
(anonymous function)

Я использую jquery 1.8.3 и jquery UI 1.8. Пожалуйста, руководство по устранению этой ошибки??

  • 0
    that._renderItemData (ul, item); Вы имели в виду _renderItem (ul, item)?
  • 0
    Нет, я имею в виду _renderItemData, как вы можете видеть в api.jqueryui.com/autocomplete. Я скопировал и вставил этот код. Использование _renderItemdata обязательно в _renderMenu, я думаю.
Теги:
autocomplete

1 ответ

1

Вы не можете расширять объект таким образом.

Попробуйте так:

(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);

Ещё вопросы

Сообщество Overcoder
Наверх
Меню