web-dev-qa-db-fra.com

jQueryUI version 1.10 autocomplete - comment définir _renderItem?

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.

25
Marco

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 createevent

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

Voir un autre réponse de moi sur ce sujet.

65
SirDerpington