Button createelement et onclick
parousky
Messages postés
325
Date d'inscription
Statut
Membre
Dernière intervention
-
schweppes41 Messages postés 135 Date d'inscription Statut Membre Dernière intervention -
schweppes41 Messages postés 135 Date d'inscription Statut Membre Dernière intervention -
Bonjour, dans un de mes codes javascript, je créé un bouton avec createelement, et j'associe à ce bouton une fonction lorsque l'on clique dessus.
Seulement, au moment de sa création, la fonction qui devrait être appelée lors du clic est appelée directement.
Alors voilà mon code :
Et le message "Tcho !" s'affiche dès la création du bouton avant le premier clic !
Qu'est ce que j'ai fais de si mal ?!
Merci d'avance pour vos réponses !
Seulement, au moment de sa création, la fonction qui devrait être appelée lors du clic est appelée directement.
Alors voilà mon code :
<div id="Button"></div>
function AfficheButton()
{
var Button = document.getElementById('Button');
var button = document.createElement("button");
button.type = "button";
button.class = ""+listeAmisConv[0][i]+"";
var t = document.createTextNode(""+listeAmisConv[1][i]+"");
button.appendChild(t);
Button.appendChild(button); button.setAttribute("onclick",MaFonction(1));
}
function MaFonction(x)
{
if(x == 1)
{
console.log("Tcho !");
}
}
Et le message "Tcho !" s'affiche dès la création du bouton avant le premier clic !
Qu'est ce que j'ai fais de si mal ?!
Merci d'avance pour vos réponses !
3 réponses
Bonjour,
c'est la ligne
c'est la ligne
button.setAttribute("onclick",MaFonction(1));qui ne va pas, remplace MaFonction(1) par MaFonction
Soit tu passes avec des data-attribute sur le button :
function AfficheButton() { var div = document.getElementById('Button'); console.log(div); var button = document.createElement("button"); button.type = "button"; button.class = "maclasse"; var t = document.createTextNode("Blablabla"); button.appendChild(t); button.setAttribute("data-x",1); div.appendChild(button); button.addEventListener("click", MaFonction); } function MaFonction() { console.log("click"); if (this.getAttribute('data-x') == 1) { console.log("Tcho !"); } } //do work AfficheButton();