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 style des boutons au clic


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Inscrit en
    Avril 2009
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Avril 2009
    Messages : 11
    Par défaut Modifier le style des boutons au clic
    Bonjour,
    3 boutons. Au clic sur un bouton, un texte différent apparait à côté. Je voudrais que le style souligné du bouton cliqué disparaisse mais qu'il réaparaisse lorsque c'est un autre bouton qui est cliqué et que celui-ci à son tour ne soit plus souligné.

  2. #2
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 670
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 670
    Par défaut
    je ne suis pas sûr d'avoir compris ce que vous voulez faire.
    montrez nous le code que vous avez déjà essayé.

  3. #3
    Membre averti
    Femme Profil pro
    Inscrit en
    Avril 2009
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Avril 2009
    Messages : 11
    Par défaut Modifier le style des boutons au clic
    je code d'abord le fonctionnement en css :
    Code css : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    article div button:target{
        text-decoration:none;
    }
    .bouton:not(:target){
        border:none;
        font-size:1rem;
        background:none;
        text-decoration:underline;
        color:#435468;
    }
    article div button:hover, article div button:focus{
        cursor:pointer;
        font-style:italic;
        text-decoration:none;
    }

    cela masque bien la partie de texte dans le bouton qui sert de déclencheur pour faire afficher un texte (div indépendant). Mais lorsque je clique sur le deuxième bouton pour changer de texte dans le div indépendant, il faudrait que le premier reprenne son souligné. Mais il reste non souligné.
    J'ai essayé avec une fonction js pour remettre tous les boutons en souligné avant de modifier celui qui est concerné mais cela ne fonctionne pas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function efface(id){
        document.getElementsByTagName('button').style.textDecoration='underline';
        document.getElementByID('button').style.textDecoration='none';
    }
    Voici les code html

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <button id="b1" class="bouton" onclick="efface('b1');affiche_text('texte 1 à affichage poncuel');"/>Texte du bouton déclencheur 1</button><br>
    <button id="b2" class="bouton" onclick="efface('b2');affiche_text('texte 2 à affichage poncuel');"/>Texte du bouton déclencheur 2</button><br>
    <button id="b3" class="bouton" onclick="efface('b3');affiche_text('texte 3 à affichage poncuel');"/>Texte du bouton déclencheur 3</button>

  4. #4
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 670
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 670
    Par défaut
    je vous conseille déjà d'utiliser des classes CSS et comme ça vous aurez juste besoin de modifier la classe dans le code javascript
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    getElementById("").className = "bouton activation"; // ce code efface la classe déjà présente donc il faut remettre "bouton" à chaque fois
    getElementById("").className = "bouton desactivation";
    ensuite regardez dans la console de développement de votre navigateur, vous verrez qu'il y a une erreur pour le code getElementsByTagName('button').style ...

  5. #5
    Membre averti
    Femme Profil pro
    Inscrit en
    Avril 2009
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Avril 2009
    Messages : 11
    Par défaut Modifier le style des boutons au clic
    merci pour le conseil que j'ai suivi.
    Si j'applique simplement au 3 premiers boutons en demandant à changer, cela fonctionne. Mais j'ai 4 ensembles de 3 boutons et je voudrai une fonction qui détecte l'id concerné, le change de classe et mette tous les autres à la classe de base. J'ai essayé ça mais ça ne fonctionne pas (les boutons ont comme id la lettre b suivie d'un numéro) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    function efface(id)
    {
        //var num = id;
        for(i=1;i<13;i++)
        {
            var avoir = "b" + i;
            if(id == avoir)
            {
                document.getElementById(id).className = "bouton activation";
                document.getElementById(avoir).className = "bouton desactivation";
            }
        }
    }

  6. #6
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 670
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 670
    Par défaut
    je pense que la logique dans la boucle devrait plutôt être comme cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if (id == avoir) {
        document.getElementById(avoir).className = "bouton activation";
    } else {
        document.getElementById(avoir).className = "bouton desactivation";
    }

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

Discussions similaires

  1. Style des boutons via IE et FireFox
    Par Delphi-ne dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 05/05/2007, 19h32
  2. Modifier la forme des boutons
    Par issou dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 30/04/2006, 20h35
  3. [C#] Modifier le text des boutons dans un datagrid
    Par Le-Cortex dans le forum ASP.NET
    Réponses: 3
    Dernier message: 11/01/2006, 10h17

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