Cacher Masquer un groupe de Div

Résolu
Signaler
Messages postés
106
Date d'inscription
lundi 24 novembre 2003
Statut
Membre
Dernière intervention
27 septembre 2019
-
Messages postés
106
Date d'inscription
lundi 24 novembre 2003
Statut
Membre
Dernière intervention
27 septembre 2019
-
Bonjour,

J'utilise ce code java:

<script language=JScript>
function ShowHideMenu(Div) {
if (Div.style.display=='none') {
Div.style.display='InLine';
}
else {
Div.style.display='none';
}
}
function MaskOtherMenu(Div) {
if (Div.style.display=='InLine') {
Div.style.display='none';
}
else {
Div.style.display='none';
}
}
</script>

Ceci dans le but d'afficher ou masquer mes Div.
J'ai à ce jour 4 Tableau différente qui utilise ce div
Sur onClick je fais un :
HideShowMenu(2002);MaskOtherMenu(2003);MaskOtherMenu(2004);MaskOtherMenu(2005);

N'y a t'il pas moyen de faire autrement?
Du style tous les Tableau autre que Div=2002 les masker ?

Actuellement, j'affiche un tableau 2002 en cliquant, si je reclique dessus il se masque.
Si je clique dessus 2003 et que 2002 est ouvert, il le ferme.
Mais à ce rythme, si j'ai 15 tableau, je devrais taper :MaskOtherMenu(Annee); autant de fois que j'aurais de tableau année !!!!!!

Auriez vous une idée?
Je me doute que c'est une exclusion avec If mais je n'arrive pas à la trouver

Merci pour votre aide,
Amicalement,
Thierry

9 réponses

Messages postés
106
Date d'inscription
lundi 24 novembre 2003
Statut
Membre
Dernière intervention
27 septembre 2019

Merci infiniment,

Je ne savais pas que js était différent de javascript

Voici au final ce que j'ai mis grâce à tes précieux conseils:

function hideDivMois(divId)
{
if (divId.slice(0, 2)=="Mo")
{
document.getElementById(divId).style.visibility="hidden";
document.getElementById(divId).style.display="none";
}
}

Merci beaucoup,

Amicalement,
Thierry
Messages postés
732
Date d'inscription
jeudi 2 janvier 2003
Statut
Membre
Dernière intervention
29 octobre 2007

Bonjour

Tu peux parcourir tous les div de ta page par la collection document.getElementsByTagName["div"]
C'est un tableau, donc ton premier div sera
document.getElementsByTagName["div"][0], le deuxième document.getElementsByTagName["div"][1] etc ...

Donc faire une function qui masque un div, du style :
function hideDiv(divId)
{
document.getElementById(divId).style.visibility="hidden";
document.getElementById(divId).style.display="none";
}

(une autre pour afficher le div, evidemment)

pour masquer tous les div, faire une boucle du genre :
for (i=0; i<document.getElementsByTagName("div").length; i++)
hideDiv(document.getElementsByTagName("div")[i].id);

Ceci à la condition que tous les div de ta page soient concernés.

Cordialement
Roro webDev
Messages postés
106
Date d'inscription
lundi 24 novembre 2003
Statut
Membre
Dernière intervention
27 septembre 2019

Je vais regarder avec ce code,
Je t'en remercie par avance.

Mes différents "Tableau" sont en fait des balises Table /Table, et mes id div sont du style 'An2002', 'An 2003', 'An2004',....
Je vais explorer cette solution,

Merci beaucoup pour ton coup de main
Messages postés
106
Date d'inscription
lundi 24 novembre 2003
Statut
Membre
Dernière intervention
27 septembre 2019

Pour être plus clair, rien de mieux que de mettre mon code exemple de ma présentation:

[# Novembre]



[# D&eacute;cembre]



12 Décembre,

25 Décembre



</td>
</tr>
</table>


</td>
</tr>
</table>

J'ai essayé avec ton code, mais j'avoue être un peu paumé, je comprends le système, je teste ce que j'envoie et j'efface tous les autres, facile comme ça, mais à mettre en pratique :o/
Bref, je continue mon exploration

Amicalement
Thierry
Messages postés
732
Date d'inscription
jeudi 2 janvier 2003
Statut
Membre
Dernière intervention
29 octobre 2007

Bonjour

Un petit exemple :
<style type="text/css">
<!--
.visu {
background-color: #FF6699;
}
-->
</style>
<script language="JavaScript" type="text/JavaScript">
function showDiv(divId)
{
hideAllDiv();
document.getElementById(divId).style.visibility="visible";
document.getElementById(divId).style.display="inline";
}


function hideDiv(divId)
{
document.getElementById(divId).style.visibility="hidden";
document.getElementById(divId).style.display="none";
}

function hideAllDiv()
{
for (i=0; i<document.getElementsByTagName("div").length; i++)
hideDiv(document.getElementsByTagName("div")[i].id);
}
</script>
</head>



[javascript:showDiv('an2001') 2001]

[javascript:showDiv('an2002') 2002]

&nbsp;

2001,

----

&nbsp;,
&nbsp;,
&nbsp;,

----

&nbsp;,
&nbsp;,
&nbsp;

2002,

----

&nbsp;,
&nbsp;,
&nbsp;,

----

&nbsp;,
&nbsp;,
&nbsp;

Cordialement
Roro webDev
Messages postés
106
Date d'inscription
lundi 24 novembre 2003
Statut
Membre
Dernière intervention
27 septembre 2019

Ok merci, j'essaie cela de suite sur mon code, c'est on ne peut plus clair,

Merci d'avoir passé un peu de temps sur mon pb

Amicalement,
Thierry
Messages postés
106
Date d'inscription
lundi 24 novembre 2003
Statut
Membre
Dernière intervention
27 septembre 2019

Ca marche presque
Le seul hic que j'ai, c'est que dans mon tableau, j'ai un autre tableau imbriqué comme dans l'exemple.
Donc pour chaque année, cela s'affiche et se masque sans soucis
mais lorsque dans mon tableau ainsi afficher, je clique sur un de mes mois, tout ce masque y compris mon mois
Je peux certainement exclure mes div qui sont du type:
Pour An2002 ça donne : Mo0210 Mo0211
Pour An2003 ça donne : Mo0305 Mo0306

J'ai copié le code java que j'ai nommé en 2 à la fin des trois fonctions.
Maintenant, il me reste à filtrer, peut on exclure par rapport au 2 première lettres par exemple?

Amicalement,
Thierry
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
42
J'utilise ce code java:

<script language=JScript>



Y A UNE GROSSE DIFFERENCE ENTRE JAVA ET JS !!!



In a dream, I saw me, drop dead... U was here, U cried... It was just a deam, if I die, U won't cry, maybe, U'll be happyhttp://coucou747.hopto.org
Messages postés
732
Date d'inscription
jeudi 2 janvier 2003
Statut
Membre
Dernière intervention
29 octobre 2007

Bonjour

Oui, il ya aussi une grande difference entre javascript et jscript.
Oui, j'avais bien mis :"Ceci à la condition que tous les div de ta page soient concernés."
Filtrer par rapport aux deux premières lettres est la première bonne idée qui vient à l'esprit, avec un tes du genre :
if (divId.slice(0, 2)=="Mo") par exemple.

Cordialement
Roro webDev