[js] changer la valeur d'un onClick

Résolu
Tralala8 Messages postés 120 Date d'inscription   Statut Membre Dernière intervention   -  
Tralala8 Messages postés 120 Date d'inscription   Statut Membre Dernière intervention   -
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

supernico Messages postés 513 Date d'inscription   Statut Membre Dernière intervention   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
Tralala8 Messages postés 120 Date d'inscription   Statut Membre Dernière intervention   14
 
Merci infiniment supernico. Tout marche sans problème. Merci de ton aide.
0
supernico Messages postés 513 Date d'inscription   Statut Membre Dernière intervention   193
 
Tu as essayé avec :

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

ou

document.getElementById("aChanger").onclick="Javascript:maFonction(0);"
0
Tralala8 Messages postés 120 Date d'inscription   Statut Membre Dernière intervention   14
 
Oui, et cela me donne le même résultat.
0