Javascript: plusieurs onclick dans la page
Utilisateur anonyme
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour,
Je débute en javascript et j'ai une question pour améliorer mon code.
J'ai fait une sorte de checkliste qui indique ce qu'il ne faut pas oublier pour organiser une manifestation. Je voudrais que les gens puissent cliquer sur les tâches qu'ils ont déjà réalisées. L'image (qui représente la tâche - sorte de pictogramme) devient alors en couleur. Mais s'ils ont cliqué par erreur, ils devraient pouvoir faire revenir le pictogramme en gris (image de départ).
J'ai fait un code comme cela:
Dans le head:
<script type="text/javascript">
cc=0;
function changeimage()
{
if (cc==0)
{
cc=1;
document.getElementById('myimage').src="images/MMG_farbig_02.gif";
}
else
{
cc=0;
document.getElementById('myimage').src="images/MMG_grau_02.gif";
}
}
</script>
Dans le body:
<img id="myimage" onclick="changeimage()" border="0" src="images/MMG_grau_02.gif" width="143" height="122" />
Mais comme j'ai une cinquantaine de point, ça devrait le faire pour chaque image. Du coup, j'ai simplement refait la fonction:
-------
cc=0;
function changeimage2()
{
if (cc==0)
{
cc=1;
document.getElementById('myimage2').src="images/MMG_farbig_03.gif";
}
else
{
cc=0;
document.getElementById('myimage2').src="images/MMG_grau_03.gif";
}
}
-----
ça marche bien mais j'aurais voulu savoir s'il existait une méthode plus "propre"?
Merci de votre aide!
Je débute en javascript et j'ai une question pour améliorer mon code.
J'ai fait une sorte de checkliste qui indique ce qu'il ne faut pas oublier pour organiser une manifestation. Je voudrais que les gens puissent cliquer sur les tâches qu'ils ont déjà réalisées. L'image (qui représente la tâche - sorte de pictogramme) devient alors en couleur. Mais s'ils ont cliqué par erreur, ils devraient pouvoir faire revenir le pictogramme en gris (image de départ).
J'ai fait un code comme cela:
Dans le head:
<script type="text/javascript">
cc=0;
function changeimage()
{
if (cc==0)
{
cc=1;
document.getElementById('myimage').src="images/MMG_farbig_02.gif";
}
else
{
cc=0;
document.getElementById('myimage').src="images/MMG_grau_02.gif";
}
}
</script>
Dans le body:
<img id="myimage" onclick="changeimage()" border="0" src="images/MMG_grau_02.gif" width="143" height="122" />
Mais comme j'ai une cinquantaine de point, ça devrait le faire pour chaque image. Du coup, j'ai simplement refait la fonction:
-------
cc=0;
function changeimage2()
{
if (cc==0)
{
cc=1;
document.getElementById('myimage2').src="images/MMG_farbig_03.gif";
}
else
{
cc=0;
document.getElementById('myimage2').src="images/MMG_grau_03.gif";
}
}
-----
ça marche bien mais j'aurais voulu savoir s'il existait une méthode plus "propre"?
Merci de votre aide!
A voir également:
- Javascript: plusieurs onclick dans la page
- Telecharger javascript - Télécharger - Langages
- A javascript error occurred in the main process - Forum Handicap / Accessibilté
- Afficher un tableau javascript en html ✓ - Forum Javascript
- Javascript arrondi - Forum Javascript
- Javascript arrondi après la virgule ✓ - Forum Windows
2 réponses
Oui et heureusement que c'est possible ! (imagine la taille de la source si tu as 20 000 000 checkbox).
Pour se faire tu doit utiliser des arguments dans t'es fonctions JavaScript :
function changeimage(e) {
var element = document.getElementById(e);
if (element.src == 'images/[MON-IMAGE-GRISE].gif') {
element.src = 'images/[MON-IMAGE-COULEUR].gif'; }
else {
element.src == 'images/[MON-IMAGE-GRISE].gif'; }
}
Sur le onclick envoi lui l'argument (l'id) :
<img id="myimage" onclick="changeimage('myimage')" border="0" src="images/MMG_grau_02.gif" width="143" height="122" />
Ps : j'ai pas testé
Pour se faire tu doit utiliser des arguments dans t'es fonctions JavaScript :
function changeimage(e) {
var element = document.getElementById(e);
if (element.src == 'images/[MON-IMAGE-GRISE].gif') {
element.src = 'images/[MON-IMAGE-COULEUR].gif'; }
else {
element.src == 'images/[MON-IMAGE-GRISE].gif'; }
}
Sur le onclick envoi lui l'argument (l'id) :
<img id="myimage" onclick="changeimage('myimage')" border="0" src="images/MMG_grau_02.gif" width="143" height="122" />
Ps : j'ai pas testé
En plus, comme je suis une bille, j'ai encore une question: ta seule fonction c'est "changeimage(e)" et tu répètes le "if" en changeant juste les noms des images?
Merci d'avance pour ta patience!