fixation de change() même auditeurs pour sélectionner/déroulante dynamiquement
Je suis de créer 3 listes déroulantes/sélectionnez les cases à la volée et de les insérer dans le DOM à travers .innerHTML.
Je ne connais pas l'ID de la dropdowns jusqu'à ce que j'ai créé en javascript.
Pour savoir qui des listes déroulantes ont été créés, j'ai créer un tableau dans lequel je stocke l'ID de la dropdowns que j'ai créé.
for(var i=0; i<course.books.length; i++)
{
output+="<label for='book_"+course.books[i].id+"'>"+ course.books[i].name +"</label>";
output+="<select id='variant"+course.books[i].id+"' name='book_"+course.books[i].id+"'>";
output+="<option value='-'>-- Select one --</option>";
for(var j=0; j<course.books[i].options.length; j++)
{
output+="<option value='"+course.books[i].options[j].id+"'>"+course.books[i].options[j].name+"</option>";
}
output+="</select>";
}
Maintenant, j'ai un tableau avec 3 id du genre:
- dropdown1
- dropdown2
- dropdown3
Ce que je veux accomplir avec javascript (sans utiliser jquery ou un autre framework) est de faire une boucle sur ces 3 listes déroulantes et joindre un changement écouteur d'événement pour eux.
Lorsqu'un utilisateur modifie la sélection dans l'un de ces déroulante, je veux appeler une fonction appelée "updatePrice" par exemple.
Je suis un peu coincé sur la dynamique de l'ajout des écouteurs d'événement ici, toute aide est grandement appréciée!
- liste déroulante = sélectionner ? veuillez inclure le code que vous utilisez pour créer ces "listes déroulantes"
- oui, déroulant = sélectionnez
Vous devez vous connecter pour publier un commentaire.
Maintenant que vous avez ajouté votre code son de droite vers l'avant et vous pouvez ignorer mon détaillé de réponse !!!
peut devenir :
Ce qui fera appel à la updatePrice fonction, en passant la liste de sélection qui a changé
Cependant
OMI son beaucoup mieux (à partir d'un point de vue des performances pour un début) pour créer des éléments dans le DOM à l'aide de la DOM.
Exemple ici -> http://jsfiddle.net/MStgq/2/
add
àappendChild
new Option
appel de fonction ...Vous avez obtenu le tableau déjà? Ensuite, vous pouvez faire ceci:
Violon: http://jsfiddle.net/QkLMT/3/
this
objet fait référence à l'instruction SELECT qui est changé.Qui ne fonctionnent pas sur tous les navigateurs.
Vous aurez envie de quelque chose comme
en jquery.