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 :

Basculer la class d'un �l�ment en js


Sujet :

JavaScript

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre confirm�
    Inscrit en
    Mars 2008
    Messages
    178
    D�tails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 178
    Par d�faut Basculer la class d'un �l�ment en js
    Bonjour,

    J'ai cr�� une fonction js qui me permet de changer la class css d'un lien.

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     
    Dans mon head :
    function ChangeClass(id) {
     
    var box= document.getElementById(id)
    box.className="newclass"
     
    Dans mon body
    <a href="javascript:;" class="defaut" id="box1" onClick="changeClass('box1')">lien1</a>
    <a href="javascript:;" class="defaut" id="box2" onClick="changeClass('box2')">lien2</a>
    <a href="javascript:;" class="defaut" id="box3" onClick="changeClass('box3')">lien3</a>
    Mon probl�me est que ma fonction marche bien. Lorsque je clic sur un lien il me change bien ma class mais j'aimerais que lorsque je clic sur un second lien, qu'il me remette la classe du premier lien cliqu� � d�faut et le second lien cliqu� soit bien chang�. Une id�e ?

    Merci

  2. #2
    Expert confirm�
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Ao�t 2003
    Messages
    3 684
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activit� : danseur

    Informations forums :
    Inscription : Ao�t 2003
    Messages : 3 684
    Par d�faut
    disons qu'il n'y a pas vraiment besoin de js pour changer la classe d'un lien;

    et puis "Onclik" n'existe pas;

  3. #3
    Membre confirm�
    Inscrit en
    Mars 2008
    Messages
    178
    D�tails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 178
    Par d�faut
    Citation Envoy� par javatwister Voir le message
    disons qu'il n'y a pas vraiment besoin de js pour changer la classe d'un lien;

    et puis "Onclik" n'existe pas;
    Ah oui explique moi alors comment tu fais mister javatwister. Si tu parles de le faire en CSS �a ne joue pas pour moi car en utilisant

    A:link {}
    A:hover { }
    A:active { }
    ou
    A:visited { }

    �a ne r�alise pas la fonction que je souhaite. Car si j'utilise visited ben tous les liens sur lesquels j'aurais cliquer vont changer de class. Alors que moi je souhaite, si je clik sur le lien 1, il change de classe, si je clik sur un lien 2, le lien 1 revient � la classe par d�faut et le lien 2 prend la nouvelle classe. Il faut donc un javascript je pense ???

  4. #4
    Membre confirm�
    Inscrit en
    Mars 2008
    Messages
    178
    D�tails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 178
    Par d�faut
    Merci Romain je vais tester cela !

  5. #5
    Membre confirm�
    Inscrit en
    Mars 2008
    Messages
    178
    D�tails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 178
    Par d�faut
    Merci Romain mais avec ta solution il y a deux soucies :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    function ChangeClass(id) {
       var liens = document.getElementsByTagName("A");
       for (var i = 0 ; i < liens.length ; ++i) liens[i].className = ((liens[i].id = id)?"newclass":"oldclass");
    }
    Le premier c'est que vu que dans mon document j'ai plusieurs a href du coup il change tous de class. Ensuite lorsque je reclick sur le lien, il ne revient pas � la class par d�faut...

  6. #6
    Membre confirm�
    Inscrit en
    Mars 2008
    Messages
    178
    D�tails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 178
    Par d�faut
    Bon apr�s tout une matin�e de recherche. Voici une solution. Elle peut �tre pas optimis� mais en tous cas, elle marche

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    function ChangeClass(id) {
     
    var liens = document.getElementsByName("link");
    	 for (var i = 0 ; i < liens.length ; ++i) 
    	 liens[i].className = "defaut";
     
     
    var idlink=id;
    var hover = document.getElementById(idlink);
    		hover.className="hover"
    }
    Ensuite dans mon lien j'ai plac� :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    <a href="javascript:;" name="link" id="link1" class="defaut" onClick="ChangeClass('link1'"></a>
    <a href="javascript:;" name="link" id="link2" class="defaut" onClick="ChangeClass('link2'"></a>
    <a href="javascript:;" name="link" id="link3" class="defaut" onClick="ChangeClass('link3'"></a>

  7. #7
    Membre Expert
    Avatar de RomainVALERI
    Homme Profil pro
    POO�te
    Inscrit en
    Avril 2008
    Messages
    2 652
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 48
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activit� : POO�te

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Par d�faut
    Citation Envoy� par yamatoshi Voir le message
    Le premier c'est que vu que dans mon document j'ai plusieurs a href du coup il change tous de class.
    Mais tu n'avais pas pr�cis� que ton probl�me se limitait � une partie des liens de la page
    Ce n'est pas grave il y a des moyens pour �viter cela.
    Imaginons que l'extrait que tes liens soient contenus dans un <div> dont l'id est "liens" :
    Code javascript : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    var liens = document.getElementById("liens").getElementsByTagName("A");

  8. #8
    Membre Expert
    Avatar de RomainVALERI
    Homme Profil pro
    POO�te
    Inscrit en
    Avril 2008
    Messages
    2 652
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 48
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activit� : POO�te

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Par d�faut
    Citation Envoy� par yamatoshi Voir le message
    Mon probl�me est que ma fonction marche bien.
    Merci, gr�ce � toi je viens de trouver ma "phrase du jour"

    Et... � part �a : attention avec className, je crois qu'IE6 ne comprend que "class", qui est malheureusement aussi un mot r�serv� de js ... donc si tu rencontres des probl�mes, pense � essayer de remplacer
    Code javascript : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    box.className="newclass"
    par
    Code javascript : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
     
    // le "document.all" n'est ici qu'un exemple, c'est pour dire : "spécifique IE" ^^
    if (document.all) box.setAttribute("class", "newclass");
    else box.setAttribute("className", "newclass");

    Enfin : pour que tes liens (non cliqu�s) redeviennent comme ils sont par d�faut, modifie un peu ta fonction changeClass :
    Code javascript : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
     
    function ChangeClass(id) {
       var liens = document.getElementsByTagName("A");
       for (var i = 0 ; i < liens.length ; ++i) liens[i].className = ((liens[i].id = id)?"newclass":"oldclass");
    }
    ps : attention dans ton extrait de code les accolades de ton bloc de fonction ne sont pas ferm�es... (peut-�tre une simple erreur de copier-coller ^^)

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

Discussions similaires

  1. Affichage texte selon la class d'un �l�ment
    Par Rafapouf dans le forum jQuery
    R�ponses: 1
    Dernier message: 02/12/2014, 10h19
  2. R�ponses: 1
    Dernier message: 01/03/2013, 19h33
  3. [Dojo] Modifier les classes CSS des �l�ments dijit
    Par Tavarez59 dans le forum Biblioth�ques & Frameworks
    R�ponses: 3
    Dernier message: 02/11/2009, 21h40
  4. Modifier l'attribut Class d'un �l�ment ?!
    Par Benzeghiba dans le forum G�n�ral JavaScript
    R�ponses: 1
    Dernier message: 04/09/2009, 15h29
  5. R�ponses: 1
    Dernier message: 25/06/2009, 01h15

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