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 :

Optimisation d'un display "none"


Sujet :

JavaScript

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre �clair�
    Inscrit en
    Avril 2005
    Messages
    269
    D�tails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 269
    Par d�faut Optimisation d'un display "none"
    Bonjour ,

    J'ai un petit script qui me permet de deployer ou non un div en fonction d'un clic sur un lien
    (le clic sur le lien permet de monter le div non apparent au depart et de le cacher par un second clic et ainsi de suite)
    Cependant quand j'en ai plusieurs sur une page je souhaiterais que l'ouverture d'un permette de fermer l'autre qui est ouvert pour n'en fait n'en afficher seulement un a la fois.

    Est-ce possible ?

    voici mon code actuel :

    le script :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    function cache(id){
    	document.getElementById(id).style.display = (document.getElementById(id).style.display == "none")?(""):("none");
    }
    le div
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    echo "<div style=cursor:pointer class=... onclick=cache('menu1')>Critiquer ".$row["user_prenom"]."</div>";
    	echo "<div style=display:none id=menu1>";
    Actuellement quand j'utilise cette technique pour tout mes div cach�s ils sont tous independant et peuvent s'ouvrir et ce fermer sans que cela touche aux autre (ce que je voudrais justement changer... )

  2. #2
    Expert �minent

    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
    Par d�faut
    Bonjour,
    il faut que ton script boucle sur les div de ta page et masque ceux dont l'id est diff�rent du param�tre pass�.
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    	for (i=0; i<document.getElementsByTagName("div").length; i++)
    		document.getElementsByTagName("div")[i].style.display = (document.getElementsByTagName("div")[i].id == ton_param)?"block":"none";
    Tu noteras que la valeur de display est 'block' pour afficher (autant �viter de compter sur les valeurs par d�faut) ...
    EDIT : Attention, si tu as des div qui ne doivent pas �tre concern�s, il faut ajouter une condition pour les exclure du test ...

    A+

  3. #3
    Mod�rateur
    Avatar de Bis�n�rs
    Profil pro
    D�veloppeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 931
    D�tails du profil
    Informations personnelles :
    �ge : 42
    Localisation : France, Rh�ne (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : D�veloppeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 931
    Par d�faut
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    function cache(id){
       for(var i = 1; i <= 3; i++){ // où 3 est le nombre de "menu"
          document.getElementById('menu'+i).style.display = "none";
       }
       document.getElementById(id).style.display = (document.getElementById(id).style.display == "none") ? "block" : "none";
    }

  4. #4
    Membre �clair�
    Inscrit en
    Avril 2005
    Messages
    269
    D�tails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 269
    Par d�faut
    merci pour ttes ces infos ca m'a l'air o poil !

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

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