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 :

jquery class removeClass


Sujet :

jQuery

  1. #1
    Membre régulier Avatar de PIEPLU
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    507
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 507
    Points : 92
    Points
    92
    Par défaut jquery class removeClass
    Bonjour,

    Je voudrais remplacer une class par une autre mais je ne comprend pourquoi je rentre pas dans cette boucle.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if($("body").hasClass("container")){
    	alert('container');
            // $('body').removeClass('container');
    }
    J'ai plusieurs container, est ce que ca peut etre le problème ? Comment je peux dire que je veux le faire sur le premier trouvé ?

    Merci
    Vincent Pieplu
    Développeur Site Internet

  2. #2
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 382
    Points : 10 410
    Points
    10 410
    Par défaut
    Salut,

    Quelle boucle vois-tu ici ? Le code que tu donnes regarde simplement si le tag body possède la classe "container".

    Si tu veux sélectionner tous les éléments de ta page utilises le sélecteur all , mais c'est extrêmement déconseillé.

    Je sais pas trop ce que tu veux faire mais s'il te faut lister tous les éléments du DOM pour regarder ceux qui ont la classe container tu as certainement un problème de méthodologie. Il faut absolument éviter de faire des recherches sur toute la page et donc se débrouiller pour cibler un minimum. Quand tu fais du javascript, il faut penser à faire un code html suffisamment structuré pour que javascript puisse cibler les recherches.

  3. #3
    Membre régulier Avatar de PIEPLU
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    507
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 507
    Points : 92
    Points
    92
    Par défaut
    Alors ce que je ne comprend pas c'est pourquoi, alors que j'ai une class container, je ne vois pas apparaitre l'alerte.

    L'idée au final, car je m'y prend peut être mal.

    J'ai un bouton, et en cliquant dessus, je suis switcher container=>container-fluid, puis un nouveau clique et je repasse de container-fluid=>container.

    Merci de votre aide.
    Vincent Pieplu
    Développeur Site Internet

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    avec le bout de code HTML qui va avec, ce serait mieux...

    Ici, on suppose que tu as :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <body class="container">

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    toggleClass('container container-fluid');
    Dernière modification par Invité ; 07/07/2016 à 09h07.

  5. #5
    Membre régulier Avatar de PIEPLU
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    507
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 507
    Points : 92
    Points
    92
    Par défaut
    J'ai tenté aussi le toggleClass, en vain.

    Mon code est ainsi.

    Le bouton :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <div class="button link-like btn-wide-screen">Zoom</div>
    Le HTML :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <body>...<div class="container">....
    Le JS :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    	$('.btn-wide-screen').click(function() {
    		$("body").toggleClass('container', 'container-fluid');
    	});
    Merci
    Vincent Pieplu
    Développeur Site Internet

  6. #6
    Invité
    Invité(e)
    Par défaut
    Comme quoi c'est UTILE de montrer le HTML !

    Ta class "container" n'est pas appliquée à la balise <body>, mais sur un <div>.

    Le mieux est encore d'identifier clairement le div à cibler :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     <div id="ce-div" class="container">container1</div>
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    	$('.btn-wide-screen').on( 'click', function() {
    		$('#ce-div').toggleClass('container container-fluid');
    	});

  7. #7
    Membre régulier Avatar de PIEPLU
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    507
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 507
    Points : 92
    Points
    92
    Par défaut
    Donc, j'ai fait comme tu as dis :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $('.btn-wide-screen').click(function() {
    	$('body').find('div.container:first-child').toggleClass('container', 'container-fluid');
    });
    Mais ca ne marche pas correctement. Ce qui se passe, c'est que les class container sont supprimées, et non remplacée par container-fluid.

    Vincent Pieplu
    Développeur Site Internet

  8. #8
    Invité
    Invité(e)
    Par défaut
    J'ai mis à jour mon message précédent (après test).

  9. #9
    Membre régulier Avatar de PIEPLU
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    507
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 507
    Points : 92
    Points
    92
    Par défaut
    Même chose si on met comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $('.btn-wide-screen').on( 'click', function() {
    	$('#project').toggleClass('container', 'container-fluid');
    });
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <div class="container" id="project">
    Vincent Pieplu
    Développeur Site Internet

  10. #10
    Membre régulier Avatar de PIEPLU
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    507
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 507
    Points : 92
    Points
    92
    Par défaut
    Ah si c'est bon, j'avais pas vu une autre de tes modifs !!

    Parfait !!!

    MMerccii
    Vincent Pieplu
    Développeur Site Internet

  11. #11
    Invité
    Invité(e)
    Par défaut
    Bon. Là, il faut apprendre à lire... ou à faire un simple copier-coller.

    [EDIT] Pense à :

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

Discussions similaires

  1. Comment créer une class en JQuery ?
    Par NEOAKIRA dans le forum jQuery
    Réponses: 2
    Dernier message: 14/05/2010, 15h16
  2. Définir une classe css dans le code jquery.
    Par piotrr dans le forum jQuery
    Réponses: 9
    Dernier message: 27/07/2009, 11h56
  3. Changer le nom d'une class au clic (Jquery)
    Par orphen dans le forum jQuery
    Réponses: 3
    Dernier message: 18/10/2008, 00h34
  4. [jQuery] fadeIn/out sur un add/removeClass
    Par Spir dans le forum jQuery
    Réponses: 2
    Dernier message: 08/10/2008, 09h58
  5. removeclass jquery
    Par mama07 dans le forum jQuery
    Réponses: 4
    Dernier message: 01/05/2008, 11h32

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