2013-07-10 5 views
23

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

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 будет работать, но повлияет на все мои автозаполнения.

ответ

63

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

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

Смотрите documentation для учебника о том, как использовать _renderItem (особенно исходный код)

Если вы хотите создать _renderItem функцию для нескольких autocompletes с классом yourClass просто использовать его в createevent

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

См. Еще answer меня по этой теме.

+0

Большое спасибо. Я не понял, что имя было изменено с «автозаполнения» на «ui-autocomplete». – Marco

+0

Не обращай внимания, пожалуйста!) – SirDerpington

Смежные вопросы