jQueryUI version 1.10 autocomplete - how to set _renderItem?
Asked Answered
S

1

26

Since I switched from jqueryui 1.8.1 to 1.10.x I realised that my custom item renderer doesn't work anymore:

Uncaught TypeError: Cannot set property '_renderItem' of undefined 

What is different in new jqueryui versions?

Here my code:

$("#lexicon-search-input")
        .autocomplete({
        ...
        }).data("autocomplete")._renderItem = customItemRenderer;

This was working on jqueryui 1.8.1 but doesn't on 1.10.3.

One more thing: I use multiple autocomplete fields. Therefore, I can not set it globally. For instance, $.ui.autocomplete.prototype._renderItem = customRenderItem would work, but will affect all of my autocompletes.

Scatter answered 10/7, 2013 at 10:45 Comment(0)
T
71

Using ui-autocomplete instead should solve your issue.

$("#lexicon-search-input")
    .autocomplete({
    ...
    }).data("ui-autocomplete")._renderItem = customItemRenderer;

See the documentation for a tutorial on how to use _renderItem (especially the source code)

If you want to create the _renderItem function for multiple autocompletes with class yourClass just use it in the createevent

$('.yourClass').autocomplete({
    create: function() {
        $(this).data('ui-autocomplete')._renderItem ....
    }
});

See another answer of me on that topic.

Torchbearer answered 10/7, 2013 at 10:53 Comment(1)
Thank you so much. I didn't realised that naming has been changed from "autocomplete" to "ui-autocomplete".Scatter

© 2022 - 2024 — McMap. All rights reserved.