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 :

Supprimer état d'un élément au click d'un autre


Sujet :

JavaScript

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 40
    Points : 25
    Points
    25
    Par défaut Supprimer état d'un élément au click d'un autre
    Bonjour à tous,

    L'intitulé n'est pas forcément très clair...
    Voila, j'ai un menu (ul, li) et je souhaite sans rechargement de la page, que lorsque je click sur un des liens du menu, le lien change de couleur au moyen du css, et que cet élément ne redevienne dans sa couleur d'origine que lorsque je click sur un autre des liens du menu lequel à son tour changera de couleur.

    En gros je voudrais permettre à l'utilisateur de savoir ou il se situe sur le site au moyen du menu, mais sans charger une autre page ( en fait, il n'y a qu'une div qui change au sein de la page lors d'un click)

    J'espère avoir été suffisamment claire.

    D'avance merci de m'éclairer un peu.

  2. #2
    Membre expérimenté Avatar de Willpower
    Homme Profil pro
    sans emploi
    Inscrit en
    Décembre 2010
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : sans emploi

    Informations forums :
    Inscription : Décembre 2010
    Messages : 1 009
    Points : 1 519
    Points
    1 519
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    var lienActif;
     
    function activeLien(elem){
      if(!!lienActif)
        lienActif.style.color = couleurParDefaut;
      lienActif = elem;
      lienActif.style.color = couleurActive;
    }


    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href=# onclick="activeLien(this);gestionDeMonDivEnAjax();">lien</a>

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 40
    Points : 25
    Points
    25
    Par défaut
    Merci pour la réponse rapide mais j'ai encore quelques soucis qui font que ça ne fonctionne pas. Je suis loin d'être aguerri au javascript. Voila mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <div id="menu">
    		    <ul id="nav">
    		        <li><a class="ezjax" onclick="activeLien(this);" href="accueil.html">Accueil</a></li>
    		        <li><a class="ezjax" onclick="activeLien(this);" href="enbref.html">En bref</a></li>
    		        <li><a class="ezjax" onclick="activeLien(this);" href="contact.html">Contact</a></li>
    		        <li><a class="ezjax" onclick="activeLien(this);" href="aide.html">Aide au projet</a></li>
    		    </ul>
    		</div>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <script type="text/javascript">
    var lienActif;
     
    function activeLien(elem){
      if(!!lienActif)
        lienActif.style.color = #428752;
      lienActif = elem;
      lienActif.style.color = #852956;
    }
    </script>

  4. #4
    Expert confirmé
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Points : 4 164
    Points
    4 164
    Par défaut
    un petit oubli ^^
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    function activeLien(elem){
      if(!!lienActif)
        lienActif.style.color = "#428752";
      lienActif = elem;
      lienActif.style.color = "#852956";
    }

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 40
    Points : 25
    Points
    25
    Par défaut
    Super ca fonctionne ! Enfin si je souhaite que chaque lien adopte une couleur différente comment procéder ? j'ai essayé de multiplier le code et de changer le nom des variables mais ça ne semble pas fonctionner

    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
     
    <script type="text/javascript">
    var lienActif;
     
    function activeLien(elem){
      if(!!lienActif)
        lienActif.style.color = "#428752";
      lienActif = elem;
      lienActif.style.color = "#852956";
    }
    var lienActif2;
     
    function activeLien2(elem){
      if(!!lienActif2)
        lienActif2.style.color = "#428752";
        lienActif.style.color = "#428752";
      lienActif2 = elem;
      lienActif2.style.color = "#222222";
    }
    </script>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <div id="menu">
    		    <ul id="nav">
    		        <li><a class="ezjax" onclick="activeLien(this);" href="accueil.html">Accueil</a></li>
    		        <li><a class="ezjax" onclick="activeLien2(this);" href="enbref.html">En bref</a></li>
    		        <li><a class="ezjax" onclick="activeLien(this);" href="contact.html">Contact</a></li>
    		        <li><a class="ezjax" onclick="activeLien(this);" href="aide.html">Aide au projet</a></li>
    		    </ul>
    		</div>

  6. #6
    Expert confirmé
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Points : 4 164
    Points
    4 164
    Par défaut
    Passe la couleur en param :
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    function activeLien(elem, col){
      if(!!lienActif)
        lienActif.style.color = "#428752";
      lienActif = elem;
      lienActif.style.color = col;
    }
    sans oublier d'ajouter les couleurs voulues (ici valeurs bidon mais à toi de choisir ^^) dans le HTML :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <li><a class="ezjax" onclick="activeLien(this, "#111111");" href="accueil.html">Accueil</a></li>
    <li><a class="ezjax" onclick="activeLien(this, "#666666");" href="enbref.html">En bref</a></li>
    <li><a class="ezjax" onclick="activeLien(this, "#AAAAAA");" href="contact.html">Contact</a></li>
    <li><a class="ezjax" onclick="activeLien(this, "#FFFFFF");" href="aide.html">Aide au projet</a></li>
    ...et nul besoin de dupliquer la fonction ou la variable globale lienActif

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 40
    Points : 25
    Points
    25
    Par défaut
    Chouet alors, merci !
    J'ai le droit d'en poser une dernière :-) ?
    Si je veux que le premier lien soit déjà surligné à l'arrivé sur le site ?

  8. #8
    Membre expérimenté Avatar de Willpower
    Homme Profil pro
    sans emploi
    Inscrit en
    Décembre 2010
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : sans emploi

    Informations forums :
    Inscription : Décembre 2010
    Messages : 1 009
    Points : 1 519
    Points
    1 519
    Par défaut
    Citation Envoyé par Natsirt Voir le message
    Chouet alors, merci !
    J'ai le droit d'en poser une dernière :-) ?
    Si je veux que le premier lien soit déjà surligné à l'arrivé sur le site ?
    fais-le en css/html non ?


    sinon en js, bah tu place un bout de code en fin de page ou dans l’évènement window.onload

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (lienActif = document.getElementById('id_du_premier_lien')).style.color = "#ffffff";// remplacer par la couleur voulue

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 40
    Points : 25
    Points
    25
    Par défaut
    Le top !

    Merci beaucoup !

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 18/05/2009, 16h51
  2. Réponses: 7
    Dernier message: 09/06/2008, 09h57
  3. [SSRS][2k5] Supprimer (ou ajouter) un élément MatrixRow
    Par clementratel dans le forum SSRS
    Réponses: 0
    Dernier message: 30/04/2008, 19h02
  4. Réponses: 2
    Dernier message: 21/09/2007, 12h21
  5. Effacer des éléments sur click
    Par hugo1992 dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 22/03/2007, 16h22

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