Jquery: ajoutant dynamiquement les éléments li à ul puis ajoute le clic, mais cliquez sur exécuter à travers chaque li

Je peux donc aborder ce problème en apprenant, mais je ne peux pas trouver ce que je fais mal ici (probablement une erreur simple, mais j'ai des problèmes). Je tente donc d'avoir un dans le balisage, un clic de bouton qui permet la sélection de la boîte de dialogue et le bouton de soumission sur la boîte de dialogue comprend l'appel à la fonction personnalisée qui fait une logique puis ajoute une chaîne à l'autre:

buildListElementItem += "<li>something</li>"; $("#my-list").append(buildListElementItem); 

Ensuite, liez le clic parce que je dois que chacun de ces éléments de liste soit représentatif d'une sorte de type de panneau de sélection

 $("#my-list li").bind('click', function () { //processing stuff }); 

Tout fonctionne bien mais si j'ajoute plus d'un élément à cette liste (l'un après l'autre) et que vous cliquez sur un élément unique, il se déplace à travers celui-ci, ce qui m'a confondu parce qu'il n'y a pas chacun et je pense que cela ne devrait l'ajouter qu'à un un seul article….

Donc il y a un tas de plus à cette fonction / etc, mais je pense que mon approche ici est fausse ??

J'ai essayé de modifier le sélecteur pour aimer une classe que j'ajoute dans la chaîne pour le li, j'ai essayé d'utiliser .on, .live, .delegate ou tout ce que je pourrais trouver au lieu de cliquer sur bind.

Peut-être que c'est une simple erreur de type d'approche pour essayer d'effectuer cela, mais j'apprécierais grandement toute aide, conseil, etc.

EDIT: ajouter plus de clarification

La boîte de dialogue permet aux utilisateurs de sélectionner l'élément à partir de sélectionner / déposer, et le clic de bouton (jquery ui) a une fonction qui appelle ci-dessous une idée pour ajouter l'élément à un élément de liste, qui sert de panneau de sélection. Ils peuvent donc remplir les éléments nécessaires sur le panneau, puis cliquer sur chaque élément pour remplir et associer les données à cet élément.

 function addNewListItem(passedType) { var buildListElementItem = "<li>" + passedType + "</li>"; $("#my-list").append(buildListElementItem); $("#my-list li").bind('click', function () { otherStuff(); }); 

Si je fais ce qui précède, je suppose que cela fait que chaque élément se lie à plusieurs reprises? Pas sûr, mais cela fonctionne à l'exception que lorsque je clique sur un seul élément li sur ce panneau, il traite pour tous les éléments li sur le panneau (autre fonction de sécurité). Donc, je pense que, à partir des exemples, je commence à comprendre la question ou pourquoi cela ne fonctionnera pas, mais comment aborderais-je ce que j'essaie de faire alors? J'ai toujours apprécié les gars! }

Lorsque vous dites «il n'y a pas de chacun», vous omettez que $("#my-list li") est un sélecteur jQuery, c'est-à-dire qu'il renvoie tous les éléments qui correspondent à l'expression: dans ce cas, tous les éléments li de l'enfant Arbre de # my-list. Ainsi, lorsque vous appelez bind, il va se lier à chaque élément li qui a déjà été ajouté à l'élément.

Ce que vous cherchez, c'est quelque chose comme ça:

 buildListElementItem = $("<li>something</li>"); //constructs a jquery object you can bind to buildListElementItem.bind('click', function () { //processing stuff }); $("my-list").append(buildListElementItem); 

De cette façon, vous vous liez avant que l'élément ne soit ajouté.