Je pense que tu as surestimé l'évènement load : il ne fonctionne pas sur les divs. Je crois que tu as une requête Ajax quelque part (on ne la voit pas dans ton extrait de code) ; c'est cette requête que tu dois surveiller, avec la bonne vieille méthode onreadystatechange.
Quelques conseils en vrac :
Ton typeof, ligne 3 dans ton code posté, ne fait pas du tout ce que tu crois. Si on regarde les parenthèses, on a en gros ceci :
Avec
qui correspond à :
document.getElementsByClassName("ajout")[0] = 'undefined'
Tu noteras au passage qu'il manque un signe =, on a donc une affectation au lieu d'une comparaison, c'est embêtant. Il se trouve que, dans ce cas précis, l'affectation échoue silencieusement : pas de message d'erreur, pas d'interruption du script. Pour éviter ça, je te conseille d'utiliser le mode strict. Jette aussi un œil à cette pratique de codage qu'on appelle la Yoda condition.
En fin de compte, une affectation renvoie toujours en résultat la valeur qui se trouve à droite du signe égal, en l'occurence la chaîne 'undefined'. Ton test de la ligne 3 est donc équivalent à :
ce qui est loin, à mon avis, de se comporter comme tu le veux (indice : toutes les chaînes sauf la chaîne vide sont équivalentes à true).
À la place de alert, utilise console.log. Ça affichera tes messages dans la console, et tu trouves cette console en appuyant sur F12 et en allant sur l'onglet « console ». Elle t'affiche également les erreurs du script, et je pense que tu en trouveras une qui parle de cette méthode .click() qui n'existe pas (ligne 24 dans ton extrait).
À la place de innerHTML, utilise insertAdjacentHTML, il est à la fois plus pratique et plus performant.
Partager