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

Contributions JavaScript / AJAX Discussion :

[jQuery] Comment puis-je vérifier si un élément a une classe en particulier ? [À publier]


Sujet :

Contributions JavaScript / AJAX

  1. #1
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut [jQuery] Comment puis-je vérifier si un élément a une classe en particulier ?
    Relecteur au rapport :p
    Je vais y aller page par page pour que ça reste lisible.
    http://danielhagnoul.developpez.com/...mentClass.html

    L'exemple 1 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if ( $( "#monID" ).is( ".maClasse" ) ){
       $( this ).show();
    }
    il manque un # devant monID, et rien n'indique que this corresponde à l'élément #monID

    L'exemple 2:
    Pour ce usecase précis, on devrait encourager à utiliser un sélecteur plus précis plutôt qu'une condition dans le callback du listener :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $( "div.maClasse" ).on( "click", function(){
    On peut revoir l'exemple comme ça :

    Lors d'un clic sur une division, si la division a la classe "maClasse" alors colorer le texte en rouge sinon le colorer en bleu
    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
    $( "div" ).on( "click", function(){
     
    	/*
    	 * La construction d'un sélecteur est une opération coûteuse,
    	 * on accélère le traitement du code en placant l'objet jQuery
    	 * dans une variable.
    	 */
    	var jObj = $( this );
     
    	if ( jObj.hasClass( "maClasse" ) ){		
    		jObj.css( "color", "red" );
    	} else {
    		jObj.css( "color", "blue" );
    	}	
    });
    Là une action a lieu pour toutes les div cliquées, donc le sélecteur large est justifié.

    Enfin l'explication sur l'argument "slow" de animate est hors de propos dans cette section. Si on veut faire une FAQ sur l'animation, il faudrait créer une section à part.
    One Web to rule them all

  2. #2
    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
    Par défaut
    Q/R modifié.

    • Merci pour la correction des bogues.
    • Merci pour les remarques et suggestions, elles sont appréciées même si elles ne figurent pas dans le Q/R modifié.
    • Attention, il faut souvent relancer la page pour voir la dernière version à cause du cache du navigateur.


    Si j'ai bonne mémoire, l'explication sur "slow" a été ajoutée à la demande d'un réviseur de la première version de la FAQ. Je la trouve utile et pertinente.

    Pour les Q/R, les exemples et les extraits de code, le champ des possibles est vaste, on ne sera jamais exhaustif et le choix ne plaira jamais à tout le monde. Pourquoi avoir choisi cet extrait plutôt que celui-là lors de la première rédaction de la FAQ : simplement en fonction des questions posées par les débutants dans le forum jQuery à cette époque.

    Au sujet de la méthode animate() : si on ne peut pas donner un exemple comportant des méthodes vues ailleurs (d'autres Q/R ou seulement dans l'API), ce n'est plus une FAQ minimaliste. Dans ce cas, je suggère de prendre modèle sur l'API jQuery et de commencer sa traduction, je recommande de vous y mettre tout de suite, car ce sera sans moi. Vu le peu d'intérêt des débutants et des forumeurs en général pour les FAQ, j'ai déjà eu moult preuves de ce désintérêt sur le forum jQuery, je ne vois aucune raison d'y mettre plus d'énergie et d'heures de travail que je l'estime nécessaire.

    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.)

  3. #3
    Expert éminent sénior

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Points : 79 912
    Points
    79 912
    Par défaut
    L'ajout d'une animation ici n'est pas nécessaire. Cependant, cet exemple montre l'utilisation d'une (l'existence des) animation(s). Ce qui peut servir au visiteur. Tant qu'il n'y a pas une section consacrée aux animations, je propose de laisser l'exemple ainsi.

  4. #4
    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
    Par défaut
    @vermine

    Construire un exemple qui utilise une méthode dans un Q/R d'une section de la FAQ et construire une autre section dédiée aux méthodes de ce type n’est pas antinomique.


    @SpaceFRog

    • Merci pour la correction des bogues.
    • Merci pour les remarques et suggestions, elles sont appréciées même si elles ne figurent pas dans le Q/R modifié.
    • Attention, il faut souvent relancer la page pour voir la dernière version à cause du cache du navigateur.


    Suite son MP, les Q/R ci-dessous ont été modifiés ce matin :


    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.)

  5. #5
    Expert éminent sénior

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Points : 79 912
    Points
    79 912
    Par défaut
    Je vais réfléchir à la suppression de la question sur l'utilisation des frameworks JavaScript.

    Nous en sommes à 4 questions de relues.

  6. #6
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut
    il n'est plus nécessaire de promouvoir ou de défendre jQuery.
    ça je veux bien le croire, mais est-ce que inversement on ne pourrait pas parler des cas où jQuery n'est pas utile ?

    Beaucoup de développeurs l'incluent par défaut dans leurs projets alors qu'ils n'en utilisent que 10% des fonctions. On devrait parler des alternatives plus légères qui utilisent une sous-partie de l'API jQuery :
    http://zeptojs.com/
    http://minifiedjs.com/
    One Web to rule them all

  7. #7
    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
    Par défaut
    @SylvainPV

    Je crois que ces sujets, pertinents, ont leurs places non dans la FAQ jQuery, mais dans une FAQ Frameworks JS.

    Je pense à une FAQ minimaliste qui aurait pour seul but d'aiguiller les débutants dans la jungle des possibles ( pourquoi des frameworks, les différents types de frameworks, lequel choisir pour quel type de tâche, pour un type de tâche donné : avantage et inconvénients des disponibles ).

    Je ne connais pas encore l'identité du moine bénédiction (au minimum quelqu'un ayant l'expérience de plusieurs frameworks, MVC et autres) qui s'y attellera, mais je lui souhaite courage et persévérance pour les fréquentes mises à jour qui seront sans doute indispensables.

    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.)

  8. #8
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16 983
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 983
    Points : 44 173
    Points
    44 173
    Par défaut

    ...et on anime la division en l'agrandissant vers la gauche de 100px puis en la diminuant vers la droite de 100px.
    J'indiquerais plutôt que l'on déplace vers la droite puis vers la gauche.

    Il me semble également important de rappeler que cela ne fonctionnera que si l'élement est positionné en absolue.

  9. #9
    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
    Par défaut
    Citation Envoyé par NoSmoking Voir le message


    J'indiquerais plutôt que l'on déplace vers la droite puis vers la gauche.

    Il me semble également important de rappeler que cela ne fonctionnera que si l'élement est positionné en absolue.
    Q/R modifié : http://danielhagnoul.developpez.com/...mentClass.html

    • Merci pour la correction des bogues.
    • Merci pour les remarques et suggestions, elles sont appréciées même si elles ne figurent pas dans le Q/R modifié.
    • Attention, il faut souvent relancer la page pour voir la dernière version à cause du cache du navigateur.

    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.)

  10. #10
    Expert éminent sénior

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Points : 79 912
    Points
    79 912
    Par défaut
    Je testerai pour l'histoire du gauche-droite, droite-gauche. Et choisirai ce qui me semble le plus visuellement compréhensible.


  11. #11
    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
    Par défaut
    Il n'y a plus rien à tester ! La correction de NoSmoking était nécessaire, c'est bien un déplacement avec le code actuel.

    Lorsque j'ai écrit le texte, c'était pour un autre code qui réalisait un agrandissement (action sur width au lieu de left) mais j'ai changé le code pour ne pas percuter le bord gauche de la page et j'ai oublié le texte, erreur typique.

    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.)

  12. #12
    Expert éminent sénior

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Points : 79 912
    Points
    79 912
    Par défaut
    Je suis bien d'accord avec la notion de "déplacement", mais je pense que la notion de "direction" est inversée. Il me semble que c'est d'abord vers la droite, ensuite vers la gauche.

  13. #13
    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
    Par défaut
    Oops !

    Franchement, on se pose des questions. C'est vrai qu'il a encore de la fièvre le Daniel, mais tout de même on va finir par se demander si ses facultés mentales n'ont pas été atteintes par les virus.

    Honnêtement, je crois que si , je viens encore d'en avoir la preuve dans un problème IRL. Je n'arrive pas à me concentrer et à travailler convenablement pour le moment. Ici c'est une véritable épidémie, toutes les personnes que je connais ont été ou sont malades.

    Je vais attendre d'aller un peu mieux pour m'y remettre, que cela ne vous empêche pas de continuer la relecture.

    Q/R modifié : http://danielhagnoul.developpez.com/...mentClass.html

    • Merci pour la correction des bogues, les remarques et les suggestions. Elles sont appréciées même si elles ne figurent pas dans le Q/R modifié.
    • Attention, il faut souvent relancer la page pour voir la dernière version à cause du cache du navigateur.

    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. [FAQ] [jQuery]Comment puis-je obtenir les paramètres de l'option choisie (select option) ?
    Par NoSmoking dans le forum Contributions JavaScript / AJAX
    Réponses: 1
    Dernier message: 18/03/2014, 23h47
  2. [FAQ] [jQuery] Comment puis-je changer l'ordre des éléments d'une liste ?
    Par SylvainPV dans le forum Contributions JavaScript / AJAX
    Réponses: 3
    Dernier message: 18/03/2014, 23h44
  3. [FAQ] [jQuery] Comment puis-je vérifier si un élément existe ?
    Par SylvainPV dans le forum Contributions JavaScript / AJAX
    Réponses: 2
    Dernier message: 30/12/2013, 16h32
  4. Réponses: 3
    Dernier message: 03/11/2011, 11h04
  5. Réponses: 13
    Dernier message: 06/04/2011, 16h56

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