JQueryUI 1.10.0自动完成renderItem问题

我尝试了一个解决方案,将’autocomplete’重命名为’ui-autocomplete’(使用JQueryUI 1.10.0,JQuery 1.8.3),但仍然出现以下错误:

TypeError:$(…)。autocomplete(…)。data(…)未定义

} }).data('ui-autocomplete')._renderItem = function (ul, item) { 

它在1.10.0中定义但我需要覆盖:

 _renderItem: function( ul, item ) { return $( "
  • " ) .append( $( "" ).text( item.label ) ) .appendTo( ul ); },
  • 这是我的整个代码:

     var ajaxCall_QuickSearchCompanyId; $('#QuickSearchCompanyId').autocomplete({ minLength: 2, delay: 300, source: function (request, response) { if (ajaxCall_QuickSearchCompanyId) { ajaxCall_QuickSearchCompanyId.abort(); } ajaxCall_QuickSearchCompanyId = $.ajax({ url: '/Advertiser/Autocompleter/CompaniesDetailed', dataType: 'json', data: { q: request.term }, success: function (data) { $('#QuickSearchCompanyId').removeClass('ui-autocomplete-loading'); response($.map(data, function (item) { return { label: item.ID, value: item.Name, subsidiaries: item.Subsidiaries, category: item.Category, url: (item.URL == null) ? '' : item.URL, parentName: item.ParentName, isReported: item.IsReported } })); } }); } }).data('ui-autocomplete')._renderItem = function (ul, item) { String.prototype.chunk = function (n) { var ret = []; for (var i = 0, len = this.length; i < len; i += n) { ret.push(this.substr(i, n)); } return ret; }; ul.attr('id', 'ul_QuickSearchCompanyId'); return $('
  • ') .data('ui-autocomplete-item', item) .append("
    " + ((item.parentName != '[[root]]') ? (item.parentName + ': ') : '') + item.value + "" + item.category + "
    ") .appendTo(ul); };

    任何想法都会受到极大的关注。

    代替

     $('selector').data('ui-autocomplete')._renderItem = function (ul, item) { }; 

    你应该使用

     $('selector').data('uiAutocomplete')._renderItem = function (ul, item) { }; 

    我有同样的问题。 你应该使用$('selector').data('autocomplete')._renderItem = function (ul, item) {...};

    或者只需打开控制台并键入以下内容: $('div').autocomplete().data()

    在那里你会看到你必须使用的方法。 就我而言,它只是’autocomlete’

    我找到了解决方案!

    好吧,我会分享你的经验。 当我遇到同样的问题时,我听到人们谈论将“ui-autocomplete”改为“uiAutocomplete”或者只是“自动完成”,但这是错误的。

    正确的是“ui-autocomplete”,这个问题的解决方案不是这个。 当我更改代码时,我解决了我的问题:

      .data('ui-autocomplete')._renderItem = function (ul, item) 

    至:

      .__renderItem = function(ul, item) 

    尝试这样做并告诉我发生了什么。

    我对这一行有同样的问题

     .data("autocomplete")._renderItem = function (ul, item) { 

    通过添加任何这些,我能够克服错误

     1 - .data('ui-autocomplete')._renderItem = function (ul, item) { 2 - .data('uiAutocomplete')._renderItem = function (ul, item) { 3 - .__renderItem = function(ul, item) {