PB tout con en javascript

Fermé
jasi - 8 juil. 2002 à 11:22
jasi Messages postés 1 Date d'inscription lundi 8 juillet 2002 Statut Membre Dernière intervention 9 juillet 2002 - 9 juil. 2002 à 10:28
Bonjour,

alors voila, j'ai un pb avec un tout petit bout de code ai j'aurai besoin d'un coup de main....
Je veux pouvoir changer la couleur des cases d'un tableau en cliquant dans ces cases, je veux passer du vert pale (VP) au (vert foncé (VF) et du jaune pale (JP) au jaune foncé (JF) mais ca ne marche pas, tout passe en jaune foncé...

Voici le bout de code :

function DetectColor(){
var JP = "#FFFFCC", JF="#FFFF99", VP = "#CCFFCC", VF="#33CC00";
var couleur;

source=event.srcElement;
if (source.tagName == "TR" || source.tagName == "TABLE") return;
while(source.tagName != "TD") source = source.parentElement;

couleur = source.style.backgroundColor;

if ( couleur != JP )
source.style.backgroundColor = JF;
else
if ( couleur != VP )
source.style.backgroundColor = VF;
}

et l'appel de la fonction (sur un tableau tout bete):

<table width="18%" height="49" border="1" cellspacing="0" bordercolor="#000000" onClick="DetectColor()">

Une idée de la cause du pb ?
Pour moi c'est le != qui est interprété mais pas le ==
Mais je débute alors....


Merci ;-))

1 réponse

Marden Messages postés 1072 Date d'inscription dimanche 11 février 2001 Statut Membre Dernière intervention 29 janvier 2006 210
8 juil. 2002 à 21:02
Petit exemple dont tu peux t'inspirer :

<HTML>
<HEAD>
<SCRIPT>
function DetectColor(){
var JP = "#ffffcc", JF="#ffff00", VP = "#ccffcc", VF="#33cc00";
var couleur;

source=event.srcElement;
if (source.tagName == "TR" || source.tagName == "TABLE") return;
while(source.tagName != "TD") source = source.parentElement;

couleur = source.style.backgroundColor;
window.status = "couleur"+" = '"+couleur+"'" ;
if ( couleur == JP ) source.style.backgroundColor = JF ;
if ( couleur == JF ) source.style.backgroundColor = JP ;
if ( couleur == VP ) source.style.backgroundColor = VF ;
if ( couleur == VF ) source.style.backgroundColor = VP ;
}
</SCRIPT>
</HEAD>
<BODY>
var JP = "#ffffcc", JF="#ffff00", VP = "#ccffcc", VF="#33cc00";<BR>
<BR>
<table width="18%" height="49" border="1" cellspacing="0"
bordercolor="#000000" onClick="DetectColor()">
<TR><TD STYLE="background-color:#FFFFCC";> xxx </TD>
<TD STYLE="background-color:#FFFF00";> xxx </TD>
<TD STYLE="background-color:#CCFFCC";> xxx </TD>
<TD STYLE="background-color:#33CC00";> xxx </TD></TR>
<TR><TD STYLE="background-color:#FFFFCC";> xxx </TD>
<TD STYLE="background-color:#FFFF00";> xxx </TD>
<TD STYLE="background-color:#CCFFCC";> xxx </TD>
<TD STYLE="background-color:#33CC00";> xxx </TD></TR>
<TR><TD STYLE="background-color:green";> xxx </TD>
<TD STYLE="background-color:red";> xxx </TD>
<TD STYLE="background-color:blue";> xxx </TD>
<TD STYLE="background-color:orange";> xxx </TD></TR>
</TABLE>
</BODY>
</HTML>

Commentaires sur ton script :
- les couleurs, affectées par "BGCOLOR=" ne sont pas reconnues (couleur = '' (vide)), donc != JP -> JF),
- les valeurs restituées (cf status) sont en minuscules
- le test est mal programmé :
!= JP concerne JF,VP,VF --> JF
== JP : != VP --> VF
0
Marden Messages postés 1072 Date d'inscription dimanche 11 février 2001 Statut Membre Dernière intervention 29 janvier 2006 210
8 juil. 2002 à 21:15
Rectification : minuscules ou majuscules conduisent aux mêmes valeurs en hexa.
0
jasi Messages postés 1 Date d'inscription lundi 8 juillet 2002 Statut Membre Dernière intervention 9 juillet 2002 > Marden Messages postés 1072 Date d'inscription dimanche 11 février 2001 Statut Membre Dernière intervention 29 janvier 2006
9 juil. 2002 à 10:28
Merci beaucoup pour ton aide, maintenant ca marche super bien !

;-))
0