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

jQuery Discussion :

Modifier le style d'un pseudo-élément avec JQuery


Sujet :

jQuery

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2013
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2013
    Messages : 21
    Points : 19
    Points
    19
    Par défaut Modifier le style d'un pseudo-élément avec JQuery
    Hola, bonjour à tous,

    J'ai réalisé des "boutons/puces" lien pour filtrer des informations sur une page.

    Chacun d'entre eux a un code couleur différent, et je souhaiterais qu'en cliquant dessus, ils changent de couleur (selon s'ils sont actifs ou non actifs).

    Comment faire pour modifier le style css au niveau des .tags li:first-child a:before, .tags li:nth-child(2) a:before, etc... en JQuery?

    Le code HTML :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <ul class="tags">
    <li><a href="#" class="BtnFiltre" id="winbet">Paris gagnés</a></li>
    <li><a href="#" class="BtnFiltre" id="lostbet">Paris perdus</a></li>
    <li><a href="#" class="BtnFiltre" id="inprogressbet">Paris en cours misés</a></li>
    <li><a href="#" class="BtnFiltre" id="inprogressnobet">Paris en cours non misés</a></li>
    <li><a href="#" class="BtnFiltre" id="endedbetnobet">Paris terminés ou clôturés non misés</a></li>
    </ul>
    Le code JS:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <script type="text/javascript">
     
    $(document).ready(function() {
     
    $('.BtnFiltre').click(function(){
    var BtnFiltreValue = $(this).attr('id');
    var ajaxurl = 'change.php',
    data =* {'action': BtnFiltreValue};
    $.post(ajaxurl, data, function (response) {
    alert("action performed successfully");
    });
    });
    });
    </script>
    Le code CSS :

    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
    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
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    .tags {
        margin: 0;
        padding: 0;
        position: relative;
        right: 9px;
        /* bottom: -12px; */
        list-style: none;
    }
     
    .tags li, .tags a {
        float: left;
        height: 24px;
        line-height: 24px;
        position: relative;
        font-size: 11px;
        margin-bottom: 5px;
    }
     
    .tags li:first-child a{ background:#4CAF50; }
    .tags li:first-child a:before{ border-color:transparent #4CAF50 transparent transparent;}
     
    .tags li:nth-child(2) a{ background:#e65224; }
    .tags li:nth-child(2) a:before{ border-color:transparent #e65224 transparent transparent;}
     
    .tags li:nth-child(3) a{ background:#0089e0; }
    .tags li:nth-child(3) a:before{ border-color:transparent #0089e0 transparent transparent;}
     
    .tags li:nth-child(4) a{ background:#FEC300; }
    .tags li:nth-child(4) a:before{ border-color:transparent #FEC300 transparent transparent;}
     
    .tags li:nth-child(5) a{ background:#8CC6D7; }
    .tags li:nth-child(5) a:before{ border-color:transparent #8CC6D7 transparent transparent;}
     
    .tags a{
    	margin-left:20px;
    	padding:0 10px 0 12px;
    	background:#0089e0;
    	color:#fff;
    	text-decoration:none;
    	-moz-border-radius-bottomright:4px;
    	-webkit-border-bottom-right-radius:4px;
    	border-bottom-right-radius:4px;
    	-moz-border-radius-topright:4px;
    	-webkit-border-top-right-radius:4px;
    	border-top-right-radius:4px;
    }
     
    .tags a:before{
      content:"";
      float:left;
      position:absolute;
      top:0;
      left:-12px;
      width:0;
      height:0;
      border-color:transparent #0089e0 transparent transparent;
      border-style:solid;
      border-width:12px 12px 12px 0;
    }
     
    .tags a:after{
    	content:"";
    	position:absolute;
    	top:10px;
    	left:0;
    	float:left;
    	width:4px;
    	height:4px;
    	-moz-border-radius:2px;
    	-webkit-border-radius:2px;
    	border-radius:2px;
    	background:#fff;
    	-moz-box-shadow:-1px -1px 2px #004977;
    	-webkit-box-shadow:-1px -1px 2px #004977;
    	box-shadow:-1px -1px 2px #004977;
    }
     
    .tags a:hover{background:#555;}
    .tags a:hover:before{border-color:transparent #555 transparent transparent;}

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

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 234
    Points : 15 531
    Points
    15 531
    Par défaut
    il existent plusieurs sélecteurs qui sont listés sur la page suivante :
    http://api.jquery.com/category/selectors/

  3. #3
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2013
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2013
    Messages : 21
    Points : 19
    Points
    19
    Par défaut
    Bonjour et merci pour ta réponse.

    J'avais déjà consulté cette page, mais je n'arrive pas à manipuler mes éléments malgré tout.

    Si je sélectionne directement l'élément, ça fonctionne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $( "#winbet" ).css( "background", "grey" );
    Mais si je reprends la variable, pour rendre le tout dynamique, ça ne fonctionne plus :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $(this).attr('id').css( "background", "grey" );
    Egalement, je ne sais pas comment faire pour également modifier le border-color du :before (que tu peux voir dans le css), exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    .tags li:first-child a{ background:#4CAF50; }
    .tags li:first-child a:before{ border-color:transparent #4CAF50 transparent transparent;}

  4. #4
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2013
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2013
    Messages : 21
    Points : 19
    Points
    19
    Par défaut
    Bonne nouvelle, j'ai trouvé comment faire pour le 1er point :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $('#' + BtnFiltreValue ).css( "background", "grey" );
    Mais toujours aucune idée pour la modification du pseudo-élément :before... HELP

  5. #5
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2013
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2013
    Messages : 21
    Points : 19
    Points
    19
    Par défaut
    J'ai essayé cette méthode mais elle ne fonctionne pas non plus...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $('#' + BtnFiltreValue + ':before').css( "border-color", "transparent grey transparent transparent" );

  6. #6
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Points : 22 933
    Points
    22 933
    Billets dans le blog
    125

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

Discussions similaires

  1. Déplacement d'élément avec jQuery
    Par babelau dans le forum jQuery
    Réponses: 4
    Dernier message: 28/06/2013, 13h31
  2. Réponses: 4
    Dernier message: 12/07/2011, 10h05
  3. modifier le style des éléments d'un datagrid
    Par pigeon11 dans le forum VB.NET
    Réponses: 2
    Dernier message: 25/02/2009, 16h42
  4. une fonction modifiant le style avec z-index
    Par Stuff dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 14/10/2008, 09h48

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