2013-07-10 18 views
23

da quando sono passato da jQueryUI 1.8.1 a 1.10.x mi sono reso conto che il mio elemento personalizzato renderer non funziona più:jQueryUI versione 1.10 completamento automatico - come impostare _renderItem?

Uncaught TypeError: Cannot set property '_renderItem' of undefined 

Ciò che è diverso nelle nuove versioni jQueryUI?

Ecco il mio codice:

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

Questo stava lavorando su jQueryUI 1.8.1, ma non in 1.10.3.

Un'altra cosa: utilizzo più campi di completamento automatico. Pertanto, non posso impostarlo a livello globale. Ad esempio, $ .ui.autocomplete.prototype._renderItem = customRenderItem funzionerebbe, ma interesserà tutti i miei autocompleti.

risposta

63

Utilizzare ui-autocomplete invece risolvere il problema.

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

Vedere la documentation per un tutorial su come utilizzare _renderItem (in particolare il codice sorgente)

Se si desidera creare la funzione _renderItem per più autocompletes con classe yourClass basta usare nella createevent

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

Vedere un altro answer di me su quell'argomento.

+0

Grazie mille. Non mi sono reso conto che la denominazione è stata modificata da "completamento automatico" a "ui-autocomplete". – Marco

+0

Non importa, prego;) – SirDerpington

Problemi correlati