Merci à tous.
J'ai résolu cela en ajoutant le code ci-dessous à l'événement "en cas de succès" de la requête XMLHTTP qui peuplait le DOM avec les éléments provenant du serveur. Cela a fonctionné pour moi. Josh, vous avez eu la tête qui bouge dans la bonne direction (bien qu'il aurait été agréable de voir une illustration de code) alors j'ai marqué votre réponse comme la réponse. Je suis désolé mais ce n'est pas vrai.
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);
}
}
}
Pourquoi les éléments doivent-ils être «insérés dans le DOM» pour que les auditeurs d'événements soient joints? – kangax
Parce que le DOM est ce qui fournit les événements en premier lieu. Est-ce que tu plaisantes? –
Eh bien, vous pouvez ajouter des gestionnaires avant l'insertion de documents, mais il est évident que vous devez créer les éléments avant d'ajouter les gestionnaires. Si vous écrivez innerHTML directement dans le document, les actes de création et d'insertion sont la même chose; pas si vous le faites avec des méthodes DOM. – bobince