Prolème Masquage/Affichage

Signaler
Messages postés
21
Date d'inscription
mardi 17 mai 2005
Statut
Membre
Dernière intervention
12 juillet 2007
-
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
-
Bonjour,
Je débutte en JavaScript, et j'ai fait un script long et répétitif qui ne sert que à afficher et cacher.

Le but est de cacher/afficher des élements en fonction d'un menu déroulant.
Tout marchait apriori, mais il y a un bug.
La moitiée des éléments du menu déroulant.
"Action", "Execute A File", "Movement", "Other", "Como Message" marchent, mais les autres ne marchent pas correctment pour la fonction cacher (afficher marche).
J'ai testé le script sous Safari et FireFox, mais cela ne change rien, donc le brobleme vient bien de mon code source Javascript:Insert_Emoticon('/imgs2/smile_sad.gif');

Vous pouvez voir le script en entier dans le code source de mon site : http://www.daan.xn-host.com/ak4_user-ini/user-ini.php

Merci de m'aider, je suis desespéré.

1 réponse

Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
18
B
onjour...
A la lecture de ton script il n'y a pas moins de 11 document.getElementById(number + "-none") sans qu'aucun DIV avec un ID = "xxxxxxx-none" ne soit déclaré.
Supprime dans ton code toutes ces références, qui ne servent pas.

Nota :
Pour  être plus efficace il est préférable, compte tenu que tu fais toujours référence au mêmes objets, de ne les récupérer qu'un fois en début de fonction changement
par exemple :
function changement (number, selectName) {
var valeur = document.getElementById(selectName).value;

var Osd_Comm    = document.getElementById(number + "-commo").style.display;
var Osd_Action  = document.getElementById(number + "-action").style.display;
var Osd_Execute = document.getElementById(number + "-execute").style.display;
...etc...
puis à les utilser dans tes if
if (valeur == 'none') {
  var Osd_Comm    = 'none';
  var Osd_Action  = 'none';
  var Osd_Execute = 'none';
...etc ...
}
else if (valeur == 'action') {
...la suite...

C'est plus facile à lire et à maintenir...
;0)