Question

Comment ajouter un événement click à l'aide de addEventListener (window.onload) lorsque les tags en question sont générés à partir de le serveur (via une requête xmphttp, pas moins)?

Merci!

Était-ce utile?

La solution

Vous devez appliquer les gestionnaires d'événements après les éléments ont été insérés dans le DOM

.

Autres conseils

Vous pouvez essayer de gérer les événements pour les éléments parents, disponibles en tant que chargés dans le DOM, puis obtenir les éléments liés à event.

<ul id="list">
  <li id="first">The first</li>
  <li id="second">The second</li>
  <li id="third">The third</li>
</ul>

document.getElementById('list').onclick(function(e){
  o = e.originalTarget;
  // if you click on second li o will bi the same as document.getElementById('first')
  // even if li with id "first" is inserted to DOM after creating this event handler to "list"
  // so here you can perform actions with it
  // hope it will help
});

Merci à tous.

J'ai résolu ce problème en ajoutant le code ci-dessous à l'option "en cas de succès". événement de la requête XMLHTTP qui a rempli le DOM avec les éléments provenant du serveur. Cela a fonctionné pour moi. Josh, ma tête allait dans la bonne direction (même s’il aurait été agréable de voir une illustration de code), j’ai donc marqué votre réponse comme la réponse.

if ((xmlhttp.readyState == 4) && (xmlhttp.status == 200)) {

                        var m_sel=document.getElementById("fcat");

                        if (m_sel) {

                            var maxi = m_sel.options.length;

                            for( var i = 0; i < maxi; i++ )
                            {
                                var option = m_sel.options[i];
                                    option.addEventListener( "click", toggleElem, true );

                            }                                 

                        }        
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top