Comment ajouterEventListener pour les éléments provenant du serveur?
-
06-07-2019 - |
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!
La solution
Vous devez appliquer les gestionnaires d'événements
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 );
}
}
}