Bonjour à tous,
Je suis débutant en Javascript et pour m'entrainer j'ai un projet de programme un peu complexe de plusieurs partie dont l'une me pose soucis.
Je ne vous met pas l'intégralité du code (qui contient plusieurs fichier php, css, JS, avec une BDD SQL) mais le code ci-dessous contient la partie de mon problème en mode "simplifié".
En gros je souhaite mettre un gestionnaire d'événement (via JQUERY) sur un bouton qui n'est crée que lors du click sur un autre bouton et récupérer l'ID du nouveau bouton ainsi créé.
(la réalité du script est un peu plus complexe car l'ID du bouton ainsi généré est variable et créé dans une boucle.
Voici le script en question:
Code html : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 <!DOCTYPE html> <html> <body> <button class="test" id="blue">X</button> <button class="demo" id="valid">Affiche</button> <p id="result"></p> </body> <script src="JS_code/jquery-3.6.1.js"></script> <script> $('.test').click(function(){ var id = $(this).attr("id"); console.log(id); }); $('.demo').click(function (){ document.getElementById('result').innerHTML='<button class="test" id="0">New button</button>'; }); </script> </html>
J'ai volontairement mis un autre bouton dans le code (le premier) généré d’emblée dans le code afin de vérifier que j'arrive bien à récupérer son ID dans la console.
et le résultat en gros c'est:
- quand le bouton existe déjà dans le code : la récupération de l'ID fonctionne
- quand le bouton est généré après chargement de la page par l’exécution d'une fonction: la récupération de l'ID ne fonctionne pas.
Mes questions :
1- Est ce que je fais une erreur ? (probablement vu que ça ne fonctionne pas)
2- Pas d'erreur mais cela n'est pas possible ? ((probablement vu que la récupération de l'ID fonctionne sur le "bouton 1" mais pas sur le bouton généré)
3- Il existe une autre façon de faire dans cette situation (probablement mais je vois pas laquelle)
4- La réponse 4
En tout cas merci infiniment de votre aide, et d'avoir lu jusque là. et si je n'ai pas été clair n'hésitez pas à me le dire je reformulerai.
Merci et bonne journée
Partager