Je le code JavaScript suivant:arguments de gestionnaire d'événements JavaScript
var ans_el = document.createElement('input');
ans_el.setAttribute('id', unique_int_value);
ans_el.setAttribute('type', 'radio');
ans_el.setAttribute('name', 'group');
ans_el.setAttribute('value', 'myValue');
ans_el.onclick = myFunction(this.id, this.value);
// Add ans_el to DOM.
function myFunction(index, value) { // do something }
Ceci, bien sûr, ne fonctionne pas comme prévu. Au moins pas dans Firefox 3.6. Ce qui se passe est l'événement onclick est déclenché lorsque l'élément est créé et les arguments passés à myFunction sont null. Une fois l'élément ajouté au DOM, l'événement onclick ne se déclenche pas lorsque le bouton radio est sélectionné. Je serais reconnaissant si quelqu'un a un aperçu de ce qui se passe ici, et/ou comment ajouter dynamiquement des gestionnaires d'événements peut être accompli.
Vous pouvez également obtenir l'ID/valeur de l'objet e.target. (e.target.id ...) – Andir
Merci pour la réponse rapide. J'ai fait quelque chose de similaire qui semble fonctionner: ans_el.setAttribute ('onclick', 'myFunc (this.id, this.value)'); Je l'ai seulement testé en FF, je suis sûr qu'Internet Explorer aura besoin d'un sautillement phénoménal pour accomplir la même chose. Je suis très tenté de dire à mes utilisateurs que I.E. ne sera pas supporté. – Bruce
Cela fonctionnera, mais l'utilisation de chaînes de code js pour être évaluées comme ça est généralement désapprouvée. Il est généralement lent, bogué et présente un certain nombre de problèmes de sécurité. Voir http://stackoverflow.com/questions/197769/when-is-javascripts-eval-not-evil/198031#198031 – sunetos