Bonjour,
J'utilise un script pour montrer/cacher des divs tout marche bien par contre j'aimerais rendre impossible le fait que deux divs soit ouvert � la fois
Car mes divs cach� ou d�couvert sont contenu dans une boucle php qui g�n�re son contenu � partir de SQL et une partit des elements g�n�r� est cach� (un simple clic sur une image les d�couvre et les re-cache)
En plus de sa mes div sont nomm� par l'id contenu dans ma bd sql donc il sont tous different, ce qui ne facilite rien...
Voici mon code javascript avec une fonction DivStatus pour d�couvrir et DivStatus Off pour cach�.
En php j'appelle la fonction DivStatus( nom, numero ) avec cette image elle aussi g�n�r� par SQL
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56 function DivStatus( nom, numero ) { var divID = nom + numero; if ( document.getElementById && document.getElementById( divID ) ) // Pour les navigateurs récents { Pdiv = document.getElementById( divID ); PcH = true; } else if ( document.all && document.all[ divID ] ) // Pour les veilles versions { Pdiv = document.all[ divID ]; PcH = true; } else if ( document.layers && document.layers[ divID ] ) // Pour les très veilles versions { Pdiv = document.layers[ divID ]; PcH = true; } else { PcH = false; } if ( PcH ) { Pdiv.className = ( Pdiv.className == 'infoCache' ) ? 'nocache' : 'infoCache'; } } function DivStatusOff( nom, numero ) { var divID = nom + numero; if ( document.getElementById && document.getElementById( divID ) ) // Pour les navigateurs récents { Pdiv = document.getElementById( divID ); PcH = true; } else if ( document.all && document.all[ divID ] ) // Pour les veilles versions { Pdiv = document.all[ divID ]; PcH = true; } else if ( document.layers && document.layers[ divID ] ) // Pour les très veilles versions { Pdiv = document.layers[ divID ]; PcH = true; } else { PcH = false; } if ( PcH ) { Pdiv.className = ( Pdiv.className == 'nocache' ) ? 'infoCache' : 'nocache'; } }
L'id est un code uniqid cr�er en php.
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2 <img src="contrib/<?php echo $donnees['fichier']; ?>" class="affiche" onclick="DivStatus( 'info', '<?php echo $donnees['id']; ?>' )" >
J'ai essay� de me d�brouill� avec Onblur mais sa ne marche pas.
Pour r�sum� il faudrait que quand l'on clique sur une autre image qui n'a donc plus la m�me id, toutes les div ou la div ouverte (peu importe sa revient au m�me) soit ferm� avant d'en ouvrir une autre.
PS: J'ai dans mon tutoriel ou j'ai apprit � ouvrir et fermer des div une fonction
qui permet de tout cacher (ci-dessous) seulement elle prend le prefixe et le num�ro du div seulement moi j'ai remplac� ce num�ro par un id unique ce qui rend je pensse inutile cette fonction qui m'aurait aid�.
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41 function CacheTout( nom ) { var NumDiv = 1; if ( document.getElementById ) // Pour les navigateurs récents { while ( document.getElementById( nom + NumDiv) ) { SetDiv = document.getElementById( nom + NumDiv ); if ( SetDiv && SetDiv.className == 'infoCache' ) { DivStatus( nom, NumDiv ); } NumDiv++; } } else if ( document.all ) // Pour les veilles versions { while ( document.all[ nom + NumDiv ] ) { SetDiv = document.all[ nom + NumDiv ]; if ( SetDiv && SetDiv.className != 'infoCache' ) { DivStatus( nom, NumDiv ); } NumDiv++; } } else if ( document.layers ) // Pour les très veilles versions { while ( document.layers[ nom + NumDiv ] ) { SetDiv = document.layers[ nom + NumDiv ]; if ( SetDiv && SetDiv.className != 'infoCache' ) { DivStatus( nom, NumDiv ); } NumDiv++; } } }
Je pensse que mon pb est tr�s difficile � comprendre donc n'h�sitez pas � me poser des questions
Merci d'avance pour votre aide car la je suis vraiment bloqu�![]()
Partager