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 :

CSS .parent() qui détruit le hover


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Assistant manager
    Inscrit en
    Mars 2015
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Assistant manager

    Informations forums :
    Inscription : Mars 2015
    Messages : 42
    Par défaut CSS .parent() qui détruit le hover
    Bonsoir,

    Lorsque j'appelle $(this).parent().css pour changer le background-color de la balise de classe="selection", son hover disparait alors que j'aimerai qu'il reste.
    Le HTML
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <div class="selection">
            <span class="type-a">Attaque</span>
    </div>


    Le Jquery
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $('span[class|="type"]').click(function(){
    	if($(this).attr("class")=="type-b"){
    		$(this).attr("class", "type-a");
    		$(this).parent().css("background-color", "#fe0002");
    	}
    	else{
    		$(this).attr("class", "type-b");
    		$(this).parent().css("background-color", "#fe6400");
    	}		
    });
    Le CSS
    Code css : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    .selection{
            background-color: #fe0002;
    }
    .selection:hover{
    	background-color: #fe0064;
    }

    Comment puis-je faire pour parer cela ?

    Merci de votre aide

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Tout d'abord, pour gérer les classes avec jQuery, il ne faut pas utiliser .attr('class') mais les méthodes spécifiques (plus performantes) : .hasClass(), .toggleClass(), .addClass() et .removeClass().

    Ensuite, ce qui se produit est logique : lorsque tu utilises .css(), cela ajoute des styles inline (attribut style) qui sont prioritaires sur les styles définis sur les balises <style> ou les feuilles de style externes.
    L'idéal serait donc de créer des classes spécifiques pour les différentes couleurs et une autre pour le survol.
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

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

Discussions similaires

  1. [CSS] DIVs qui va à la ligne... :(
    Par m0pz dans le forum Mise en page CSS
    Réponses: 14
    Dernier message: 02/01/2006, 15h24
  2. [CSS]Texte qui déborde avec IE6
    Par moscovisci dans le forum Mise en page CSS
    Réponses: 1
    Dernier message: 21/11/2005, 21h19
  3. [CSS] Menu qui disparait derriere un champ
    Par Pepito dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 06/09/2005, 10h03

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