渲染自定义自动完成结果

时间:2014-09-07 13:04:36

标签: javascript jquery json jquery-ui autocomplete

我有以下代码:

jQuery("#hotelName").autocomplete({
            serviceUrl:'xxxxxxxxxxxxxxxxxxxxxxxx',
            minChars:1,
            delimiter: /(,|;)\s*/, // regex or character
            maxHeight:200,
            zIndex: 9999,
            appendTo: "#ui-front"
         }).data( "ui-autocomplete" )._renderItem = function( ul, item ) {
                console.log(item);
              return jQuery( "<li>" )
                .data( "ui-autocomplete-item", item )
                .append( "<a>" + item.label + "<br>" + item.desc + "</a>" )
                .appendTo( ul );
            };

我从控制台收到此错误:

Cannot set property '_renderItem' of undefined

我正在使用jQuery UI Auto complete 1.2.9

自动完成工作没有任何问题:

jQuery("#hotelName").autocomplete({
                serviceUrl:'xxxxxxxxxxxxxxxxxxxxxxxx',
                minChars:1,
                delimiter: /(,|;)\s*/, // regex or character
                maxHeight:200,
                zIndex: 9999,
                appendTo: "#ui-front"
             });

但我想应用自定义渲染。不知道是什么问题?

修改

我尝试将jQuery UI Auto Complete升级到最新版本,但这对我没有帮助。

1 个答案:

答案 0 :(得分:1)

要从包含应用此窗口小部件的元素的jQuery对象获取窗口小部件实例(要调整的_renderItem属性),应使用窗口小部件的instance()方法,如{ {3}}。例如:

$('#input_to_autocomplete')
  .autocomplete(widgetOptions) // applying the widget
  .autocomplete('instance')    // getting the widget's instance
  ._renderItem = function(ul, item) { /*... */ }; // augmenting the display function