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 :

sélection par classe


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Décembre 2007
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 63
    Par défaut sélection par classe
    bonjour,

    j'ai un soucis pour utiliser les sélectionneur de JQuery.

    J'explique : je veux faire apparaître du texte d'une série de paragraphe (à qui j'ai donné la class=slideN, N étant un nombre). Pour cela j'écrivais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $('div.slide'+number).slideDown();
    où number était un paramètre de ma fonction

    Mais maintenant je veux, au sein d'une classe slide2 par exemple, pouvoir faire apparaître tel ou tel paragraphe. J'ai d'abord penser utiliser des id en // des class, malheureusement j'ai encore plusieurs paragraphes à faire apparaître simultanément. Et deux class ce n'est pas possible.

    J'en suis arrivé à faire des class généré en php ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    class=\"slide".$partcount."detailed".$idcount."\"
    donc qui sont du type slideN1detailedN2.

    Je voulais donc remplacer mon code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $('div.slide'+number).slideDown();
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $('div[class^="slide'+number+'"').slideDown();
    mais cela ne fonctionne pas...

    Une idée de pourquoi je n'arrive pas à sélectionner mes div comme ça ?
    Et/ou une autre idée pour pouvoir faire mes deux séries de sélection autrement qu'en créant des classes à noms composés ?

    En espérant avoir été clair...

  2. #2
    Membre confirmé
    Inscrit en
    Décembre 2007
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 63
    Par défaut
    Argh ! pourquoi est-ce quand je viens de poster que je trouve mon erreur ? pourtant j'ai bien du chercher pendant 30' avant de poster... j'avais simplement oublier de fermer le ]

    Une autre question toutefois qui n'a pas grand chose à voir :

    comment faire en sorte que toutes mes div soit cachées au début ?
    j'imagines bien un truc du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     $('div[class^="slide'+number+'"').quelquechose
    mais je ne sais pas trop quoi, et surtout je ne sais pas comment faire pour que ce soit pris en compte ? j'avais essayer d'appeler une fonction avec onload de mon body mais ça n'avait pas marché...

    Désolé, j'imagines que ce sont des questions de débutant. Je fais de mon mieux pour chercher la réponse par moi même toutefois...

  3. #3
    Rédacteur
    Avatar de Arnaud F.
    Homme Profil pro
    Développeur COBOL
    Inscrit en
    Août 2005
    Messages
    5 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur COBOL
    Secteur : Finance

    Informations forums :
    Inscription : Août 2005
    Messages : 5 183
    Par défaut
    Citation Envoyé par 20100. Voir le message
    comment faire en sorte que toutes mes div soit cachées au début ?
    j'imagines bien un truc du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     $('div[class^="slide'+number+'"').quelquechose
    mais je ne sais pas trop quoi, et surtout je ne sais pas comment faire pour que ce soit pris en compte ? j'avais essayer d'appeler une fonction avec onload de mon body mais ça n'avait pas marché...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $(document).ready(function() {
        $("div[class^=slide]").hide();
    });
    Pour les rendre visible par la suite :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        $("div[class^=slide]").show();
    C'est par l'adresse que vaut le bûcheron, bien plus que par la force. Homère

    Installation de Code::Blocks sous Debian à partir de Nightly Builds

  4. #4
    Membre confirmé
    Inscrit en
    Décembre 2007
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 63
    Par défaut
    Super, merci à vous !

    Pour les deux class , j'avais tout bêtement écrit deux fois class = ... au lieu de donner 2 valeurs... du coup je vais pouvoir repenser ma feuille css moi . Finalement j'ai opté pour le display:none, qui me semble le plus propre.
    mon soucis pour ça était à l'origine que je ne savais pas générer automatiquement du css pour faire autant de class que nécessaire, du coup j'ai mis le style en "inline". Maintenant que je sais qu'on peux faire plusieurs class, je vais simplement faire une class hidden et ce sera réglé (plus pratique aussi pour gérer ma page sans javascript, car y'a toujours des réticent à la technologie ;-)

    et merci pour le code $(document).ready, il me semblait avoir déjà essayer dans cette direction et échoué, mais je reviendrais si ça ne marche pas.

  5. #5
    Membre émérite Avatar de Atomya Rise
    Femme Profil pro
    Développeuse Web
    Inscrit en
    Février 2009
    Messages
    443
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France, Somme (Picardie)

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

    Informations forums :
    Inscription : Février 2009
    Messages : 443
    Par défaut
    Citation Envoyé par 20100. Voir le message
    Et deux class ce n'est pas possible.
    Heuuu si, cela est tout à fait possible...

    Pour avoir deux class il suffit de faire ceci :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <div class="classe1 classe2">

    Et tu gères cela avec
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    .addClass("LaClassAajouter")
    .removeClass("LaClassAenlever")

    En ce qui concerne la question
    comment faire en sorte que toutes mes div soit cachées au début ?
    j'imagine bien un truc du genre $('div[class^="slide'+number+'"').quelquechose
    Tu n'est pas loin ^^
    Remplace ton .quelquechose par .hide()

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    207
    Détails du profil
    Informations personnelles :
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Novembre 2010
    Messages : 207
    Par défaut
    Oui ou bien le mieux un style="display:none;" sur chaque div ou sur la classe de cette div dans le fichier css externe. Ça évite du traitement javascript.

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

Discussions similaires

  1. Editeur de texte qui fait la sélection par colonne
    Par wodel dans le forum Windows XP
    Réponses: 5
    Dernier message: 10/11/2010, 13h45
  2. [log4j] structurer par classes
    Par frouge dans le forum Logging
    Réponses: 4
    Dernier message: 25/09/2006, 11h24
  3. un fichier par classe
    Par CaptainChoc dans le forum Général Python
    Réponses: 11
    Dernier message: 20/05/2006, 19h29
  4. Consommation memoire par classe
    Par spartikis dans le forum C++
    Réponses: 5
    Dernier message: 25/07/2005, 16h42
  5. Couleur de sélection par défaut
    Par sicard_51 dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 20/04/2003, 23h35

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