[js] changer la valeur d'un onClick

Résolu/Fermé
Tralala8 Messages postés 120 Date d'inscription mercredi 17 août 2011 Statut Membre Dernière intervention 12 février 2013 - 1 oct. 2011 à 15:18
Tralala8 Messages postés 120 Date d'inscription mercredi 17 août 2011 Statut Membre Dernière intervention 12 février 2013 - 3 oct. 2011 à 00:13
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 dimanche 30 décembre 2007 Statut Membre Dernière intervention 20 novembre 2011 193
2 oct. 2011 à 23:45
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 mercredi 17 août 2011 Statut Membre Dernière intervention 12 février 2013 14
3 oct. 2011 à 00:13
Merci infiniment supernico. Tout marche sans problème. Merci de ton aide.
0
supernico Messages postés 513 Date d'inscription dimanche 30 décembre 2007 Statut Membre Dernière intervention 20 novembre 2011 193
1 oct. 2011 à 15:35
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 mercredi 17 août 2011 Statut Membre Dernière intervention 12 février 2013 14
2 oct. 2011 à 12:51
Oui, et cela me donne le même résultat.
0