Bonjour !

Je suis en train de développer un site internet sous NodeJS et je bloque sur un problème tout bête...
J'aimerais récupérer l'ID d'un élément ("li") quand je clique sur un bouton/lien qui est dedans.
Cependant, la balise "li" et son contenue, est rajouté grâce à une fonction JavaScript :

// Ajoute la liste des taches dans la page
            function insereList(bdd) {

                  for (var i = 0; i <= 5; i++) {
                    $('.contenue').append('<li id="'+bdd[i].id+'" >'+bdd[i].description+'</li>');
                  }
                }

Ce qui a pour effet que quand j'utilise l'attribut attr() ou .on(click) ou n'importe quoi d'un élément qui à était rajouté avec la fonction, n'est pas détecté... Par exemple :

$( "li" ).on( "click", function() {
    console.log("JE SUIS ICI !");
});

Quand je clique sur la balise "li", rien ne s'affiche dans la console... Contrairement à :

$( "ul" ).on( "click", function() {
              console.log("JE SUIS ICI !");
});

Contrairement à la balise "ul" qui n'est pas généré avec une fonction et qui quand je clic dessus : affiche "Je suis ici" dans la console...

Je sais pas si j'ai était clair mais est-ce que quelqu'un aurait une solution s'il vous plait ? Est-ce que c'est normal ? Ou le problème viendrait d'un autre endroit dans mon code ? (Ce qui m'étonnerais un peu car le reste marche très bien mais on est sûr de rien)

2 réponses


Lartak
Réponse acceptée

Bonjour.
Si je comprends bien tu veux parler de déclencher un évènement sur un élément qui n'existe pas au moment ou le DOM à été chargé.
Si c'est bien ça et vu que tu utilises jQuery, je te recommande Tutoriel Vidéo jQuery » jQuery.on().
Pour faire simple, il te suffit de modifier par :

$("ul").on("click", "li", function() {
    console.log("JE SUIS ICI !");
});
Dehairka
Auteur

Tu es mon héros ! Merci beaucoup !