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 :

Instruction jQuery ne s'applique pas à tous les éléments ciblés


Sujet :

jQuery

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2014
    Messages : 16
    Points : 11
    Points
    11
    Par défaut Instruction jQuery ne s'applique pas à tous les éléments ciblés
    Bonjour ! J'ai un calendrier, développé en php, dans lequel j'affiche la date complète dans chaque jour :

    Nom : 8e891e1954.png
Affichages : 319
Taille : 41,8 Ko


    J'aimerais, au chargement de la page, cacher cette date compète, et ne l'afficher à côté du calendrier qu'au survol du jour voulu.
    Voici le code qui affiche les dates dans le calendrier :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <div class="daytitle" id="daytitle">
             <?php echo $date->days[$w-1]; echo $d; echo $date->months[$m-1];?>
    </div>
    Et voici mon code jQuery pour cacher ces dates :

    Hélas, lorsque je teste tout ça, seule la date du premier jour du premier mois est bien cachée, mais pas les autres. Ne trouvant pas d'aide sur Google, je viens demander la vôtre ici
    Merci d'avance !

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 662
    Points
    66 662
    Billets dans le blog
    1
    Par défaut
    Un id DOIT être unique sur la page ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2014
    Messages : 16
    Points : 11
    Points
    11
    Par défaut
    Je ne le savais pas ^^ Une class doit l'être également ?
    Merci pour ta réponse !

  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
    Un ID doit être unique et une classe peut être utilisée autant de fois que nécessaire.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $( '.daytitle' ).on( "click", function( event ){
        // event.traget permet de connaître et d'agir $( event.target ).css( "color", "red" ); sur l'élément du DOM qui a généré l'évènement
    });

    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
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2014
    Messages : 16
    Points : 11
    Points
    11
    Par défaut
    Ah génial, ça fonctionne lorsque j'utilise la classe, merci beaucoup

    Je ne trouve pas la différence entre $(event.target) et $(this), car ça sert à faire la même chose j'ai l'impression...

  6. #6
    Membre confirmé
    Homme Profil pro
    Déveleoppeur Web/Mobile
    Inscrit en
    Avril 2013
    Messages
    330
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Déveleoppeur Web/Mobile
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2013
    Messages : 330
    Points : 545
    Points
    545
    Par défaut
    effectivement event.target correspond à la cible(c-à-d l'élément html) qui a reçu l'évènement (genre onclick).

    'this' correspond à l'objet en cours de manipulation, en l'occurence cela correspond à la même chose que event.target

  7. #7
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2014
    Messages : 16
    Points : 11
    Points
    11
    Par défaut
    Alors pourquoi existe-il deux manières de faire la même chose ?

  8. #8
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 553
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 553
    Points : 21 612
    Points
    21 612
    Par défaut
    Parce que ça n'aurait pas de sens d'en enlever une.

    - this doit toujours être l'objet en cours de manipulation. C'est une convention jQuery (et objet JavaScript en général,) et ça marche bien. Ce n'est pas limité aux cas où on réagit à un event.

    - event doit toujours être disponible en paramètre quand on réagit à cet event. Par exemple pour déterminer où, quand, ou avec quoi on a cliqué. Par cohérence cet event doit contenir un target indiquant quel est l'élément concerné, parce que c'est toujours le cas d'un event, partout, même en dehors de jQuery et quand il n'y a pas de this ou qu'il veut dire autre chose. C'est aussi pratique pour passer cet event en paramètre d'autre chose, qui n'aura pas le même this et pourra pourtant repérer quel était l'élément concerné par l'event.

    => La conséquence de tout ça, c'est que quand on écrit un listener d'event en jQuery, this et event.target désignent tous les deux l'élément en cours.
    Ce n'est pas grave. Mais this étant plus court, il serait plus malin de l'utiliser toujours lui, en jQuery.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  9. #9
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2014
    Messages : 16
    Points : 11
    Points
    11
    Par défaut
    Merci beaucoup pour ces précisions , ça m'aide

  10. #10
    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 : 53
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Citation Envoyé par -Rpass-
    'this' correspond à l'objet en cours de manipulation, en l'occurence cela correspond à la même chose que event.target
    Absolument pas !

    this correspond à l'élément sur lequel a été placé l'événement et e.target à l'élément qui a effectivement reçu l'événement.
    Dans le fiddle suivant, clique sur la zone grise puis sur le texte pour voir la différence.

    https://jsfiddle.net/nm5tLxya/
    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

  11. #11
    Membre confirmé
    Homme Profil pro
    Déveleoppeur Web/Mobile
    Inscrit en
    Avril 2013
    Messages
    330
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Déveleoppeur Web/Mobile
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2013
    Messages : 330
    Points : 545
    Points
    545
    Par défaut
    Biensur que ce n'est pas la même chose et ton explication
    this correspond à l'élément sur lequel a été placé l'événement et e.target à l'élément qui a effectivement reçu l'événement.
    est beaucoup plus claire que la mienne.

    Effectivement event.target et this ne vont pas être le même élément dans certains cas mais dans d'autres cela va être le même élément ^^ cependant il faut bien différencier les deux je suis d'accord

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

Discussions similaires

  1. Jquery append n'applique pas les class CSS
    Par casawia dans le forum jQuery
    Réponses: 1
    Dernier message: 15/08/2014, 12h35
  2. SELECT ne retourne pas tous les éléments d'une vue
    Par chat de nuit dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 20/03/2012, 14h38
  3. Réponses: 2
    Dernier message: 06/06/2006, 08h32
  4. Les Langages ne sont pas tous les mêmes ......
    Par Max Payne dans le forum Langages de programmation
    Réponses: 2
    Dernier message: 28/08/2003, 13h51
  5. jointure renvois pas tous les enregistrements
    Par rayonx dans le forum Langage SQL
    Réponses: 7
    Dernier message: 29/08/2002, 12h51

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