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 :

Appliquer à un style à "tous, sauf"


Sujet :

JavaScript

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 103
    Points : 46
    Points
    46
    Par défaut Appliquer à un style à "tous, sauf"
    Bonjour,
    J'aimerais savoir si il est possible d'appliquer un style à tous les éléments, sauf un.
    Exemple, j'ai 5 boutons blancs, qui changent de couleur (-> rouge) quand je clique dessus. Je veux qu'il n'y ait toujours qu'un seul bouton rouge.
    Au clic, le bouton, disons 1, devient rouge:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById("bouton1").className="button_rouge";
    Je voudrais que les autres deviennent blancs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById("tous les boutons sauf le 1").className="button_blanc";
    Y'a t'il moyen ?
    Merci

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 354
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 354
    Points : 1 419
    Points
    1 419
    Par défaut
    moi je dirais utilise JQuery,
    on peut selectionner un ensemble pour lui changer sa class etc...

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 103
    Points : 46
    Points
    46
    Par défaut
    Ok, merci, je vais regarder ça de près.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 103
    Points : 46
    Points
    46
    Par défaut
    Bonjour Auteur, et merci pour ton code
    A priori j'ai fait autre chose, qui fonctionne, à savoir, une fonction qui "blanchi" tous les boutons, et que j'appelle à chaque fois.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    function decocher(){
    	for(var i=1; i<6; i++){
    		var b = "bouton" + i ;
    		document.getElementById(b).className="bouton_blanc";
    	}
    }
    Ensuite, il ne me reste plus qu'à "rougir" le bouton coché, avec la commande citée dans le premier message.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    decocher() ;
    document.getElementById("bouton1").className="bouton_rouge";
    Pas très propre, mais plus court. Pas forcément très rapide (je sais pas trop), mais c'est pas grave.

  5. #5
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 649
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 649
    Points : 11 138
    Points
    11 138
    Par défaut
    bonjour,

    fais une liste de tes boutons :
    Code javscript : 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
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
    function listerBouton()
    {
     var listeInput = document.getElementsByTagName("input");
     var listeBoutons = new Array();
     var i, j, n;
     
     try {
       n = listeInput.length;
       j=0;
     
       for (i=0; i<n; i++)
       {
        if (listeInput[i].type.toLowerCase()=="button")
        {
           listeBoutons[j] = listeInput[i];
           j++;
        }
       }
       if (j<=0)
          throw "Erreur..";
     }
     catch(e)
     {
       listeBoutons = null;
     }
     
     return listeBoutons;
    }
    puis lorsque tu cliques sur un bouton affecte lui la classe "button_rouge" et aux autres "button_blanc".

    [edit]j'ai réédité mon post au moment où tu postait ta réponse pour te proposer une autre solution.... et nos messages se sont croisés J'ai donc supprimé mon message et reposter mon code. (Pour ceux qui n'ont rien compris à ce j'ai dit : je suis fatigué aujourd'hui )[/edit]

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 103
    Points : 46
    Points
    46
    Par défaut
    Citation Envoyé par Auteur
    [edit]j'ai réédité mon post au moment où tu postait ta réponse pour te proposer une autre solution.... et nos messages se sont croisés J'ai donc supprimé mon message et reposter mon code. (Pour ceux qui n'ont rien compris à ce j'ai dit : je suis fatigué aujourd'hui )[/edit]
    Non, c'est pas vrai, c'est juste que j'avais deviné que tu allais poster, et j'ai anticipé le merci

  7. #7
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 649
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 649
    Points : 11 138
    Points
    11 138
    Par défaut
    voici donc une autre solution, mémorise le dernier bouton cliqué (cela évite de les lister) :

    Code html : 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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
     
    <html>
    <head>
    <title></title>
    <style type="text/css">
    <!--
    .bouton_blanc{
     background-color : #FFFFFF;
    }
    .bouton_rouge{
     background-color : #FF0000;
    }
     
    //-->
    </style>
     
    <script type="text/javascript">
    <!--
    var oldBtClic = null;//pas de bouton cliquer initialement
     
    function changeStyle(bt)
    {
      if (oldBtClic!=bt)
      {
        bt.className="bouton_rouge";
        if (oldBtClic!=null)
           oldBtClic.className = "bouton_blanc";
      }
     
      oldBtClic = bt; //memorisation du dernier bouton clique
    }
     
     
    //-->
    </script>
     
    </head>
     
    <body>
     
    <input type="button" value="Bouton 1" class="bouton_blanc" onclick="changeStyle(this)" />
    <input type="button" value="Bouton 2" class="bouton_blanc" onclick="changeStyle(this)" />
    <input type="button" value="Bouton 3" class="bouton_blanc" onclick="changeStyle(this)" />
    <input type="button" value="Bouton 4" class="bouton_blanc" onclick="changeStyle(this)" />
    <input type="button" value="Bouton 5" class="bouton_blanc" onclick="changeStyle(this)" />
     
     
    </body>
     
    </html>

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 103
    Points : 46
    Points
    46
    Par défaut
    Citation Envoyé par Auteur
    voici donc une autre solution, mémorise le dernier bouton cliqué (cela évite de les lister) :

    Code html : 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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
     
    <html>
    <head>
    <title></title>
    <style type="text/css">
    <!--
    .bouton_blanc{
     background-color : #FFFFFF;
    }
    .bouton_rouge{
     background-color : #FF0000;
    }
     
    //-->
    </style>
     
    <script type="text/javascript">
    <!--
    var oldBtClic = null;//pas de bouton cliquer initialement
     
    function changeStyle(bt)
    {
      if (oldBtClic!=bt)
      {
        bt.className="bouton_rouge";
        if (oldBtClic!=null)
           oldBtClic.className = "bouton_blanc";
      }
     
      oldBtClic = bt; //memorisation du dernier bouton clique
    }
     
     
    //-->
    </script>
     
    </head>
     
    <body>
     
    <input type="button" value="Bouton 1" class="bouton_blanc" onclick="changeStyle(this)" />
    <input type="button" value="Bouton 2" class="bouton_blanc" onclick="changeStyle(this)" />
    <input type="button" value="Bouton 3" class="bouton_blanc" onclick="changeStyle(this)" />
    <input type="button" value="Bouton 4" class="bouton_blanc" onclick="changeStyle(this)" />
    <input type="button" value="Bouton 5" class="bouton_blanc" onclick="changeStyle(this)" />
     
     
    </body>
     
    </html>
    impec !
    merci encore

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

Discussions similaires

  1. [RegEx] enlever tous entre quote
    Par gIch dans le forum Langage
    Réponses: 5
    Dernier message: 01/11/2008, 12h53
  2. Appliquer un style à tous les éléments sauf un
    Par ner0lph dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 24/04/2007, 08h55
  3. Appliquer un style à tous les éléments d'une table
    Par licorne dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 02/01/2007, 14h31

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