IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

display none ou block multiple


Sujet :

JavaScript

  1. #1
    Membre expérimenté Avatar de riete
    Homme Profil pro
    DevWeb - Oléiculteur
    Inscrit en
    Avril 2006
    Messages
    1 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : DevWeb - Oléiculteur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 193
    Points : 1 414
    Points
    1 414
    Par défaut display none ou block multiple
    J'ai un tableau qui contient un très grand nombre de cases. Pour améliorer la lisibilité j'ai fixé la propriété de style display:none; (invisible) pour un certain type de case qui ont toutes un id identique: id='payed'.

    A l'aide d'un bouton je déclenche un fonction JS qui devrait les faire tous disparaître ou apparaître. Sauf que la fonction n'agit que sur la dernière case.

    Pourquoi ? merci de votre aide.
    Voici un exemple de mon code très simplifié.
    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
    <html>
    <head>
    	<style type="text/css" title="text/css">
    	td{		border-color: #DDD;
    			background-color: #39F;
    			width: 50;
    			border-style: solid;
    			border-color: #555;
    			border-width: 2px;}
    	</style>
    </head>
     
    <script type="text/javascript">
    function Show_Hide(objID) {
    		var obj = document.getElementById(objID);
     
    		if (obj.style.display=='block') {
    			obj.style.display='none';
    		} else {
    			obj.style.display='block';
    		}
    	}
    </script>
    <body>
    <div  onclick="Show_Hide('paye');">Voir/Cacher</div>
    <table>
    	<tr>
    		<td id=paye>&nbsp</td>
    		<td id=paye>&nbsp</td>
    		<td id=paye>&nbsp</td>
    	</tr>
    </table>
    </body>
    </html>
    ----
    L'avenir appartient à ceux dont les salariés se lèvent tôt.

  2. #2
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Bonjour,
    Citation Envoyé par riete Voir le message
    J'ai un tableau qui contient un très grand nombre de cases. Pour améliorer la lisibilité j'ai fixé la propriété de style display:none; (invisible) pour un certain type de case qui ont toutes un id identique: id='payed'.
    Je n'ai pas lu plus loin : c'est interdit
    (un id doit être unique dans la page)

    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  3. #3
    Membre averti Avatar de htr999
    Profil pro
    Étudiant
    Inscrit en
    Février 2008
    Messages
    331
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2008
    Messages : 331
    Points : 394
    Points
    394
    Par défaut
    +1 pour l'id UNIQUE

    sinon note les éléments dont tu aura besoin avec les id comme par l'exemple "id1...id100"
    et dans ta fonction tu fais une simple boucle pour les afficher !.!
    sinon il y a aussi getElementsByTagName

    a+

  4. #4
    Membre expérimenté Avatar de riete
    Homme Profil pro
    DevWeb - Oléiculteur
    Inscrit en
    Avril 2006
    Messages
    1 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : DevWeb - Oléiculteur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 193
    Points : 1 414
    Points
    1 414
    Par défaut
    Citation Envoyé par E.Bzz Voir le message
    Bonjour,
    Je n'ai pas lu plus loin : c'est interdit
    (un id doit être unique dans la page)
    Vu le comportement du navigateur, je me doutais bien que je n'arriverais pas à le blouser

    Merci htr999 pour l'info, même si j'ai déjà utiliser à de nombreuses occasions cette méthode. Mais vu que dans ma page j'ai 6200 cases à cacher ou a faire apparaitre, je voulais éviter d'effriter les performances avec une boucle. Grave erreur de ma part, j'ai fait l'essai c'est super rapide (chapeau JS !).

    J'ai une autre question:Comment puis je connaitre la valeur max de l'index sachant que ma page est construite avec du php et que je ne connais sa valeur qu'a la fin de la génération ?

    Vous me suivez?

    Existe t il un moyen plus rapide que de reparcourir toute la page pour trouver la plus grande valeur de l'index 'n', avant de lancer Show_Hide(n) ?

    J'ai pensé mettre le bouton de déclenchement en bas de page, mais bof

    Comme support, je poste le code échantillon qui fonctionne avec un index fixe.
    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
    <html>
    <head>
    	<style type="text/css" title="text/css">
    	td{		border-color: #DDD;
    			background-color: #39F;
    			width: 50;
    			border-style: solid;
    			border-color: #555;
    			border-width: 2px;}
    	</style>
    </head>
     
    <script type="text/javascript">
    function Show_Hide(n) {
     
    	for ( x =1 ; x <= n ; x++){
     
    		var obj = document.getElementById("paye" + x);
     
    			if (obj.style.display=='block') {
    				// Affiche
    				obj.style.display='none';
    			} else {
    				// Cache
    				obj.style.display='block';
    			}
    	}
    }
    </script>
    <body>
    <div  onclick="Show_Hide(3);">Voir/Cacher</div>
    <table>
    	<tr>
    		<td id=paye1>&nbsp</td>
    		<td id=paye2>&nbsp</td>
    		<td id=paye3>&nbsp</td>
    	</tr>
    </table>
    </body>
    </html>
    ----
    L'avenir appartient à ceux dont les salariés se lèvent tôt.

  5. #5
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par riete Voir le message
    Existe t il un moyen plus rapide que de reparcourir toute la page pour trouver la plus grande valeur de l'index 'n', avant de lancer Show_Hide(n) ?
    Ces index sont générés par le serveur (PHP, ASP ...), je suppose ?
    Il te suffit de mémoriser la dernière valeur à ce niveau, et de la stocker dans la page (variable JS, input hidden ...)

    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  6. #6
    Expert confirmé
    Avatar de Thes32
    Homme Profil pro
    Développeur PHP, .Net, T-SQL
    Inscrit en
    Décembre 2006
    Messages
    2 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur PHP, .Net, T-SQL

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 379
    Points : 4 853
    Points
    4 853
    Par défaut
    Citation Envoyé par riete
    ...je ne connais sa valeur qu'a la fin de la génération ?
    oui, effectivement ensuite du côté serveur avec php
    Citation Envoyé par E.Bzz
    Il te suffit de mémoriser la dernière valeur à ce niveau, et de la stocker dans la page (variable JS, input hidden ...)
    Développeur | Zend Certified Engineer

    Étapes Pour mieux se servir du forum:
    1. Commencez par lire les cours et tutoriels ;
    2. Faites une recherche;
    3. Faites un post si rien trouvé dans les deux étapes précédentes en respectant les règles;

    Nix>_Rien n'est plus pratique que la théorie

  7. #7
    Membre expérimenté Avatar de riete
    Homme Profil pro
    DevWeb - Oléiculteur
    Inscrit en
    Avril 2006
    Messages
    1 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : DevWeb - Oléiculteur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 193
    Points : 1 414
    Points
    1 414
    Par défaut
    Citation Envoyé par E.Bzz Voir le message
    Ces index sont générés par le serveur (PHP, ASP ...), je suppose ?
    Il te suffit de mémoriser la dernière valeur à ce niveau, et de la stocker dans la page (variable JS, input hidden ...)

    A+
    Ceci m'aura permis de mieux comprendre la visibilité des variable JS. Le input hidden n'est pas nécessaire puisqu'il n'y a pas formulaire.
    J'ai mis en fin de code l'affectation de la valeur de l'index max et ça gaz!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "<script>var max_Index=".$Index_Cell.";</script>";
    merci en tout cas

    A+
    ----
    L'avenir appartient à ceux dont les salariés se lèvent tôt.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Contenu décalé au passage du display:none au display:block
    Par Invité dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 03/05/2013, 09h11
  2. Display:none & display:block
    Par RicardoBxl dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 16/01/2013, 22h49
  3. Display:none & Display:block
    Par RicardoBxl dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 11/01/2013, 21h19
  4. Problème sous Firefox display none / block
    Par jeromed dans le forum Balisage (X)HTML et validation W3C
    Réponses: 12
    Dernier message: 05/02/2010, 17h08
  5. DIV display none block
    Par kishkaya dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 08/08/2007, 17h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo