JavaScript: écouteur d'Événement pour plusieurs boutons avec le même nom de classe

Je suis en train de construire un arbre de décision en JavaScript. Je n'ai pas de jQuery qui s'offrent à moi pour ce projet.

Je voudrais être en mesure d'avoir des boutons, placés n'importe où dans l'arbre de décision (Cachés ou affichés sur la page), avec le même nom de classe. L'écouteur sur le JS côté puis d'exécuter une fonction.

Voici ce que j'utilise pour et basé sur l'identification de l'auditeur. Il fonctionne bien mais j'ai besoin d'être en mesure d'avoir de multiples boutons de la même catégorie ou nom. Bien que j'ai vu des exemples de cela, je ne peux pas l'obtenir pour fonctionner correctement.

function q1a1() {
var q1a1button = document.getElementById("q1answer1");
        if(q1a1button.addEventListener){
q1a1button.addEventListener("click", function() { q1answer1();}, false);
        } else if(q1a1button.attachEvent){
q1a1button.attachEvent("onclick", function() { q1answer1();});
}
};

if(window.addEventListener){
    window.addEventListener("load", q1a1, false);
        } else if(window.attachEvent){
    window.attachEvent("onload", q1a1);
        } else{
    document.addEventListener("load", q1a1, false);                
}

function q1answer1() {          

//DO SOME STUFF
                                            }

Ce doit également travailler en autant de versions d'IE que possible. Pour la seule gestion de classe, je suis en utilisant querySelectorAll.

  • utilisez simplement querySelectorAll() pour itérer sur les éléments avec cette classe, plus ou moins enveloppant que la boucle autour du code que vous avez déjà. vous pouvez également joindre un événement unique pour le corps, et de regarder (e.cible||e.srcElement).className pour décider de comment gérer l'événement lors de l'invocation de temps.
  • querySelectorAll travaille dans ie8. Si vous avez besoin de soutien rien dessous, je suis désolé pour vous. Juste parcourir le tableau des éléments, ajouter un écouteur d'événement pour chaque.
InformationsquelleAutor user3460707 | 2014-05-23