Подтвердить что ты не робот

JQueryUI версия 1.10 autocomplete - как установить _renderItem?

Поскольку я переключился с jqueryui 1.8.1 на 1.10.x, я понял, что мой пользовательский рендеринг элементов больше не работает:

Uncaught TypeError: Cannot set property '_renderItem' of undefined 

Что нового в новых версиях jqueryui?

Здесь мой код:

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

Это работало на jqueryui 1.8.1, но не на 1.10.3.

Еще одна вещь: я использую несколько полей автозаполнения. Поэтому я не могу установить его глобально. Например, $.ui.autocomplete.prototype._renderItem = customRenderItem будет работать, но повлияет на все мои автозаполнения.

4b9b3361

Ответ 1

Использование ui-autocomplete вместо этого должно решить вашу проблему.

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

Смотрите документация для руководства по использованию _renderItem (особенно исходного кода)

Если вы хотите создать функцию _renderItem для нескольких автозаполнений с классом yourClass, просто используйте ее в create event

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

См. другой ответ по этой теме.