2013-07-10 23 views
23

Odkąd przełączane z jQueryUI 1.8.1 do 1.10.x zdałem sobie sprawę, że moja pozycja niestandardowy mechanizm renderujący już nie działa:jQueryUI wersja 1.10 autouzupełnianie - jak ustawić _renderItem?

Uncaught TypeError: Cannot set property '_renderItem' of undefined 

Co różni się w nowych wersjach jQueryUI?

Oto mój kod:

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

To działa na jQueryUI 1.8.1 ale nie na 1.10.3.

Jeszcze jedno: korzystam z wielu pól autouzupełniania. Dlatego nie mogę ustawić go globalnie. Na przykład: $ .ui.autocomplete.prototype._renderItem = customRenderItem będzie działać, ale wpłynie na wszystkie moje autouzupełnienia.

Odpowiedz

63

Użycie numeru powinno rozwiązać problem.

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

Zobacz documentation za tutorial na temat korzystania _renderItem (szczególnie kodu źródłowego)

Jeśli chcesz utworzyć funkcję _renderItem dla wielu Autouzupełnianie z klasą yourClass prostu używać go w createevent

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

Zobacz inny answer mnie na ten temat.

+0

Dziękuję bardzo. Nie zdawałem sobie sprawy, że zmiana nazwy została zmieniona z "autouzupełniania" na "ui-autouzupełnianie". – Marco

+0

Nieważne, nie ma za co;) – SirDerpington

Powiązane problemy