[js] changer la valeur d'un onClick

Résolu
Tralala8 Messages postés 128 Statut Membre -  
Tralala8 Messages postés 128 Statut Membre -
Bonjour tout le monde.

Voila, j'ai un petit problème en javascript.

J'ai un lien comme ceci
<a onClick="maFonction(1)" id="aChanger">Lien</a>


Ce que j'aimerais faire, c'est changer la valeur du "onClick". Pour ça, j'ai cherché des solutions et pour le moment, mon code javascript ressemble à ça
function maFonction(action)
{
	switch(action)
	{
		case 0 :
			document.getElementById("aChanger").onclick=function(){maFonction(1)}
			alert('Eteint');
		break;
		
		case 1 :
			document.getElementById("aChanger").onclick= function(){maFonction(0)}
			alert('Allumé');
		break;
	}
}


Seul le premier clic sur mon lien fonctionne. Il m'affiche bien "Allumé". Par contre, lors du second clic, il ne se passe rien. Je ne sais plus trop quoi faire. Pouvez-vous m'aider ?

Merci d'avance à ceux qui pourront m'éclairer.

2 réponses

  1. supernico Messages postés 584 Statut Membre 193
     
    En fait il faut passer par la méthode setAttribute :

    <html>
    	<head>
    		<script language="javascript" type="text/javascript">
    		function maFonction(alink,action)
    		{
    			switch(action)
    			{
    				case 0:
    					alink.setAttribute('onclick',"maFonction(this,1);");
    					alert('Eteint');
    				break;
    				case 1:
    					alink.setAttribute('onclick',"maFonction(this,0);");
    					alert('Allumé');
    				break;
    			}
    			return false;
    		}
    		</script>
    	</head>
    	<body>
    		<a href="javascript:void(0);" onClick="javascript:maFonction(this,1);" id="aChanger">Lien</a>
    	</body>
    </html>
    
    2
    1. Tralala8 Messages postés 128 Statut Membre 14
       
      Merci infiniment supernico. Tout marche sans problème. Merci de ton aide.
      0
  2. supernico Messages postés 584 Statut Membre 193
     
    Tu as essayé avec :

    document.getElementById("aChanger").onclick="maFonction(0);"

    ou

    document.getElementById("aChanger").onclick="Javascript:maFonction(0);"
    0
    1. Tralala8 Messages postés 128 Statut Membre 14
       
      Oui, et cela me donne le même résultat.
      0