Cacher plusieurs div sans écrire tous les arguments javascript/html [Résolu]

Signaler
Messages postés
14
Date d'inscription
mardi 17 février 2009
Statut
Membre
Dernière intervention
21 juin 2009
-
Bul3
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
-
bonjour, cette fois ci j'ai mon code j'aimerais juste le rendre plus pratique mais j'ignore comment:

_voici le script ds le <head>

function Masque_OBJ(){
     var Arg = arguments;
     var Obj;
     for( var i=0; i< Arg.length; i++){
     Obj = document.getElementById( Arg[i]);
     if( Obj){
     Obj.style.visibility = "hidden";
     Obj.style.display = "none";
     }
     }
     }

_le problème est lorsque j'appelle la fonction ds le html :

onclick="Masque_OBJ('work02','work03','work04','work05','work06','work07','work08','work09')

_la question, c'est comment faire pour qu'une variable "var a=<9" par exemple me permette de reduire mon code dans le html genre :

onclick="Masque_OBJ('work'+a) <--- simplification désirée...sniff!

merci d'avance, en éspèrant que quelqu'un parle javascript!!!lol

6 réponses

Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
7
Bonjour,

tu es sur le forum html/javascript, donc on cause javascript !

mais ta demande n'est pas assez précise !
c'est toujours de work02 à work"maxi" qu'il faut cacher ?
ou alors de work"mini" à work"maxi" ?

et peut-être tu peux faire totalement de manière différente
par exemple : si on ne montre qu'un seul div et qu'on cache celui affiché.

petite question pourquoi display ET visibility ??? display seul suffit non ?

Cordialement [mon Site] [M'écrire] Bul
Messages postés
647
Date d'inscription
samedi 30 décembre 2000
Statut
Membre
Dernière intervention
20 juillet 2012
5
Tu peux appeler ta fonction dans une boucle :

for( var i=0; i< 9; i++){¸
Masque_OBJ("work0"+i);
}

Cordialement

JDMCreator
Messages postés
14
Date d'inscription
mardi 17 février 2009
Statut
Membre
Dernière intervention
21 juin 2009

_alors le display et le visibiliy c'est pour un max de compatibilité car le site doit etre lisible sur un max de navigateur dc je voulais etre sur!!!

_en fait g 9 div et jaimerais que seul une soit visible a chaque fois!!mais je ne c'est pas comment, dans la fonction javascript, faire en sorte qu'il "shake" le html et trouve le display pour le passer en "none" comme ta dit...comment ne montrer qu'une div et cacher celle qui est visible...quelque soit la div!!!!!
Messages postés
14
Date d'inscription
mardi 17 février 2009
Statut
Membre
Dernière intervention
21 juin 2009

_en fait lorsque je clic sur un work je veux qu'il saffiche et cache l'autre!!!!

geoffrey
Messages postés
14
Date d'inscription
mardi 17 février 2009
Statut
Membre
Dernière intervention
21 juin 2009

ah oui!en fait j'ai donc 9 div et deu fonction..la deuxième c'est pour afficher la div!:
function Affiche_OBJ(){
     var Arg = arguments;
     var Obj;
     for( var i=0; i< Arg.length; i++){
     Obj = document.getElementById( Arg[i]);
     if( Obj){
     Obj.style.visibility = "visible";
     Obj.style.display = "";
     }
     }
     }

_et donc sur chaque div j'ai:
onclick="Masque_OBJ('work02','work03','work04','work05','work06','work07','work08','work09') ; Affiche_OBJ('work01')
_c'est donc comment changer ou fusionné ces deux fonction javascript pour allégé... j'aimerais vraiment rèussir a apprendre!mais je galère un peu...snifff
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
7
donc 1 seule div est affichée ?
ne cache que celle là !

var prec=document.getElementById("work01");
function Affiche_OBJ(le_div)
{   prec.style.display="none";
    prec=document.getElementById("le_div);
    prec.style.display="inline";
}

et l'appel : Affiche_OBJ("work##")
toute boucle est inutile à priori !