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 :

Modifier le CSS d'une classe


Sujet :

JavaScript

  1. #1
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster d�butant perp�tuel !
    Inscrit en
    Octobre 2006
    Messages
    10 493
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 61
    Localisation : France, Is�re (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : Webmaster d�butant perp�tuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 493
    Billets dans le blog
    1
    Par d�faut Modifier le CSS d'une classe
    Bonsoir,

    je souhaite, lorsque l'utilisateur clique sur un lien passer le display de 2 div de block � none. J'ai donc attribu� la classe "cacher" � ces 2 divs, et lorsque l'utilisateur clique sur le lien, �a envoie sur une page o� j'ai mis ce code
    Code js : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    	<script>
    	var classCacher = document.getElementsByClassName("cacher");
    	for (i=0;i<classCacher.length;i++) {
    	     i.style.display=none;
    	}
    	</script>
    mais le display des 2 div reste � block. Comment faudrait-il faire ?

  2. #2
    R�dacteur

    Avatar de danielhagnoul
    Homme Profil pro
    �tudiant perp�tuel
    Inscrit en
    F�vrier 2009
    Messages
    6 389
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 75
    Localisation : Belgique

    Informations professionnelles :
    Activit� : �tudiant perp�tuel
    Secteur : Enseignement

    Informations forums :
    Inscription : F�vrier 2009
    Messages : 6 389
    Billets dans le blog
    125
    Par d�faut
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    var classCacher = document.getElementsByClassName("cacher");
     
    for ( var i = 0; i < classCacher.length; i++ ){
      classCacher[i].style.display = "none";
    }

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues � un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  3. #3
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster d�butant perp�tuel !
    Inscrit en
    Octobre 2006
    Messages
    10 493
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 61
    Localisation : France, Is�re (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : Webmaster d�butant perp�tuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 493
    Billets dans le blog
    1
    Par d�faut
    Merci

  4. #4
    Invit�
    Invit�(e)
    Par d�faut
    Ca se fait aussi plus facilement en jQuery (que tu utilises par ailleurs...).

  5. #5
    R�dacteur/Mod�rateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Par d�faut
    Euh je ne suis pas s�r de comprendre... Pourquoi parcourir les �l�ments en JavaScript et modifier leur style en inline quand on peut simplement utiliser CSS ?

    Code css : S�lectionner tout - Visualiser dans une fen�tre � part
    .cacher { display: none; }

  6. #6
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster d�butant perp�tuel !
    Inscrit en
    Octobre 2006
    Messages
    10 493
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 61
    Localisation : France, Is�re (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : Webmaster d�butant perp�tuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 493
    Billets dans le blog
    1
    Par d�faut
    La raison est que �a doit �tre dynamique : au d�part, le display est � block et c'est seulement quand l'utilisateur clique sur un des 2 liens de navigation que je passe le display � none.

  7. #7
    R�dacteur/Mod�rateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Par d�faut
    C'est l'attribution de la classe qui est dynamique non ? Autrement tu pourrais avoir des �l�ments avec une classe "cacher" qui sont visibles...*

    exemple: http://jsfiddle.net/yuLmcqhr/

  8. #8
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster d�butant perp�tuel !
    Inscrit en
    Octobre 2006
    Messages
    10 493
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 61
    Localisation : France, Is�re (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : Webmaster d�butant perp�tuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 493
    Billets dans le blog
    1
    Par d�faut
    Oui, tout-�-fait, c'est bien l'attribut...

  9. #9
    Invit�
    Invit�(e)
    Par d�faut
    Bonjour Laurent,

    explique-nous un peu comment tu effectues le "onclick"* sur le lien
    (code � l'appui)

    * :
    • en Javascript pur
    • en jQuery

  10. #10
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster d�butant perp�tuel !
    Inscrit en
    Octobre 2006
    Messages
    10 493
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 61
    Localisation : France, Is�re (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : Webmaster d�butant perp�tuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 493
    Billets dans le blog
    1
    Par d�faut
    Je viens d'�crire une r�ponse (assez longue) ; ma connexion s'est termin�e donc au moment d'envoyer le post, �a m'a demand� de me reconnecter, ce que j'ai fait, mais apr�s, post disparu...donc je recommence :

    d�sol� mais pas de onclick. Les liens sont de ce genre : <a href="'.$_SERVER['PHP_SELF'].'?page=planning&m='.$monthValue.'&y='.$yearValue.'&eff=1">&lt;&lt;</a>. Le PHP_SELF indique qu'on reste sur la m�me page ; mais cette page en inclut une deuxi�me dont le nom est donn� par le param�tre page, donc ici, on inclue la page planning.htm (l'extension est toujours htm). Le fait de changer l'attribut display de la classe "cacher" est donn� par le param�tre eff et ensuite dans planning.htm :
    Code php : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    	if (isset($_GET['eff'])) {?>
    	<script>
    	var classCacher = document.getElementsByClassName("cacher");
    	for (i=0;i<classCacher.length;i++) {
    		classCacher[i].style.display = "none";
    	}
    	</script>

  11. #11
    Invit�
    Invit�(e)
    Par d�faut
    Bonjour,
    c'est donc bien ce qu'avait flair� SylvainPV.

    Nul besoin de JavaScript ici :
    Code php : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
     
    <?php if (isset($_GET['eff'])) { ?>
    <style type="text/css">.cacher { display: none; }</style>
    <?php } ?>
    A mettre avant </head>.


    En dehors du fait que tu manques de technique(s), c'est surtout la LOGIQUE* qui te fait le plus d�faut.
    *Ici, il s'agissait de trouver la solution la plus simple.

    N.B. Et comme tu n'as QUE 2 div � masquer, je me serais m�me pass� d'ajouter une class, en mettant directement sur chaque div :
    Code php : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    <div<?php if (isset($_GET['eff'])) { echo ' style="display: none;"'; }; ?>>
    .....
    </div>

  12. #12
    R�dacteur/Mod�rateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Par d�faut
    J'irais m�me plus loin, quitte � recharger toute une page g�n�r�e via PHP, autant virer compl�tement les blocs cach�s du HTML g�n�r�. Ce sera �a de moins � charger c�t� client.

    Mais bon, si on commence � faire la fine bouche niveau performances, autant se passer de PHP compl�tement

  13. #13
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster d�butant perp�tuel !
    Inscrit en
    Octobre 2006
    Messages
    10 493
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 61
    Localisation : France, Is�re (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : Webmaster d�butant perp�tuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 493
    Billets dans le blog
    1
    Par d�faut
    Il y a une impossibilit� dans les propositions de J�r�me au post #11 : la variable $_GET['eff'] n'existe pas dans les fichiers qui contiennent les div ; en effet, ces fichiers sont inclus dans celui sur lequel je fais le lien.

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. R�ponses: 3
    Dernier message: 09/02/2011, 15h40
  2. Modifier le code d'une classe au milieu de l'ex�cution.
    Par Invit� dans le forum D�buter
    R�ponses: 16
    Dernier message: 24/02/2010, 14h14
  3. modifier le css dans une balise iframe
    Par psycoma dans le forum Balisage (X)HTML et validation W3C
    R�ponses: 3
    Dernier message: 11/08/2009, 14h28
  4. Comment modifier un contr�le depuis une classe ?
    Par pot2yaourt dans le forum Windows Forms
    R�ponses: 2
    Dernier message: 25/07/2009, 15h01
  5. R�ponses: 6
    Dernier message: 21/05/2006, 20h37

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