2010-04-16 5 views
3

J'ai configuré la saisie semi-automatique JQuery UI selon les docs et cela fonctionne pour toute entrée avec class = "tag-item" qui est rendu à la page. Cependant, l'utilisateur peut ajouter des entrées dans le dom via JS, j'ai donc besoin d'un moyen de lier la saisie semi-automatique aux nouvelles entrées créées dynamiquement en utilisant un délégué. Je ne suis pas sûr de savoir comment mettre cela en place, des idées seraient appréciées.jquery ui autocomplete avec delegue

Merci

+0

Dans mon odeurs esprit cette solution, mais je fini par envelopper tout le code dans une fonction et d'appeler la fonction dans la fonction complète après l'injection de la nouvelle entrée dans la DOM. Autant que je sache, je devrais modifier le code pour la saisie semi-automatique afin de le faire fonctionner avec un délégué. Je suis sûr à 100% qu'il y a un meilleur moyen, c'est pourquoi c'est un commentaire et non une réponse marquée. – Paul

Répondre

7

Vous pouvez déléguer un événement « focusIn » pour configurer votre champ de saisie.

See this post

+0

A ++++ achèterait à nouveau. Merci pour le super lien. – Nathan

+2

Et c'est pourquoi le lien vers une réponse est mauvais ... – KrisF

+0

@KrisF, vous avez pris les mots de ma bouche ... verbatim! :-( – PeterKA

2

J'ai eu un aller à cela, mais pourrait ne pas sembler le faire fonctionner, voici ma tentative:

http://jsfiddle.net/uGdm2/

+0

juste pour ajouter: http://jsfiddle.net/uGdm2/3/ semble être mieux que la version que vous avez cité :) –

+0

Je ne pense pas que ce soit mieux, non. – HM2K

+0

vous avez eu plusieurs erreurs: http://jsfiddle.net/uGdm2/65/ javascript: void (0) fonctionne mieux que javascript: false vous avez manqué a) après la 1ère fonction. Et vous ne voulez pas cloner (true), essayez clone() et il ne clone pas les événements. – Lathan

4

Pour ce que ça vaut la peine, voici ce que je fini par utiliser: Mon espoir est que cela soulagera le fardeau sur le navigateur puisque je suis en train de compléter (peut-être) des centaines d'éléments par autocomplétion. s éteint et allumé, et le résultat autocomplete uls commencent à empiler autrement.

1

Pour moi qui suit travaillé:

$('#autocomplete').on('focusin', 'input', function(){ 
    $(this).autocomplete({ 

    }); 
}); 
Questions connexes