Depuis que je suis passé de jqueryui 1.8.1 à 1.10.x, j'ai réalisé que mon rendu d'élément personnalisé ne fonctionne plus:
Uncaught TypeError: Cannot set property '_renderItem' of undefined
Qu'est-ce qui est différent dans les nouvelles versions de jqueryui?
Voici mon code:
$("#Lexicon-search-input")
.autocomplete({
...
}).data("autocomplete")._renderItem = customItemRenderer;
Cela fonctionnait sur jqueryui 1.8.1 mais ne fonctionne pas sur 1.10.3.
Encore une chose: j'utilise plusieurs champs de saisie semi-automatique. Par conséquent, je ne peux pas le définir globalement. Par exemple, $ .ui.autocomplete.prototype._renderItem = customRenderItem fonctionnerait, mais affectera tous mes autocompletes.
En utilisant ui-autocomplete
devrait plutôt résoudre votre problème.
$("#Lexicon-search-input")
.autocomplete({
...
}).data("ui-autocomplete")._renderItem = customItemRenderer;
Voir documentation pour un tutoriel sur l'utilisation de _renderItem
(en particulier le code source)
Si vous souhaitez créer le _renderItem
fonction pour la saisie semi-automatique multiple avec la classe yourClass
il suffit de l'utiliser dans le create
event
$('.yourClass').autocomplete({
create: function() {
$(this).data('ui-autocomplete')._renderItem ....
}
});
Voir un autre réponse de moi sur ce sujet.