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 :

Append Each Class


Sujet :

jQuery

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Février 2003
    Messages
    926
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 926
    Points : 273
    Points
    273
    Par défaut Append Each Class
    Bonsoir, j’extrais des données d'une base de données locale et insère des lignes comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     db.version(1).stores({friends: "++id, number, text,", });
     
       db.friends
      .each (function (friend) {
     
       if (friend.number === "1")  {       
      $('#name').append('<td class="maClass" id="monId'+friend.id+'">'+friend.text+'</td>');  
       };
      $(".maClass").unbind().click(function() {	 
    	 // CODE 	 	 
    	 }); 	 
      }

    Mon problème est que je redéfinis la classe pour chaque élément et ça fait perdre un temps fou.

    Si je déclare la classe en dehors de each ça ne marche pas. Sauriez-vous svp comment procéder pour éviter d'avoir à redéclarer la class à chaque fois?

    Merci d'avance pour votre aide.

    Arsène

  2. #2
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 407
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Suisse

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

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 407
    Points : 4 847
    Points
    4 847
    Par défaut
    bonsoir,
    désolé si j'avais mal compris ton soucie, mais si tu n'as pas besoin de la classe 'maClass' pourquoi la déclarer?
    et pourquoi vous faites un unbind() et un click() juste après append() ?

  3. #3
    Expert confirmé
    Avatar de Doksuri
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2006
    Messages
    2 451
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 451
    Points : 4 600
    Points
    4 600
    Par défaut
    Citation Envoyé par Toufik83 Voir le message
    et pourquoi vous faites un unbind() et un click() juste après append() ?
    surement car les elements rajoutes dynamiquement ne sont pas pris en compte par sont .click() deja defini
    => pour palier a ce probleme, il faut faire ainsi :
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    $(document).on("click", ".maClass", function() { console.log("clicked"); });
    La forme des pyramides prouve que l'Homme a toujours tendance a en faire de moins en moins.

    Venez discuter sur le Chat de Développez !

  4. #4
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 407
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Suisse

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

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 407
    Points : 4 847
    Points
    4 847
    Par défaut
    Citation Envoyé par Doksuri
    surement car les éléments rajoutes dynamiquement ne sont pas pris en compte par sont .click() déjà défini
    la déclaration du click vient après que l'élément soit ajouté, donc je ne pense pas qu'il est obligé de passer par la délégation:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $(document).on("click", ".maClass", function() { console.log("clicked"); });

  5. #5
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 959
    Points : 44 122
    Points
    44 122
    Par défaut
    Bonjour,
    Citation Envoyé par Arsene12
    Mon problème est que je redéfinis la classe pour chaque élément et ça fait perdre un temps fou.
    je ne vois pas trop en quoi cela peut être gênant !?!

    Dans ce cas toutefois je me passerais des classes attendu que si toutes les ID sont de la forme id="monId'+friend.id+'">, il te suffit de cibler en CSS les éléments concernés comme suit
    Code css : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    [id^="monId"] {
      /* le style à appliquer */
    }

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Février 2003
    Messages
    926
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 926
    Points : 273
    Points
    273
    Par défaut
    (document).on("click", ".maClass", function() { console.log("clicked"); });

    Merci beaucoup pour le $(document).on("click", ".maClass"... Ça marche impeccable.

    C'est très utile lorsque .maClass comprend du code javascript et pas uniquement du css.

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

Discussions similaires

  1. Append avec Class et Id
    Par Arsene12 dans le forum jQuery
    Réponses: 14
    Dernier message: 22/08/2016, 06h32
  2. Jquery append n'applique pas les class CSS
    Par casawia dans le forum jQuery
    Réponses: 1
    Dernier message: 15/08/2014, 12h35
  3. [Débutant] For each sur une classe hérité
    Par edmr_ps dans le forum VB.NET
    Réponses: 5
    Dernier message: 27/08/2012, 15h28
  4. Collection classes et "For each"
    Par hpfx dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 16/10/2007, 15h20
  5. classe conteneur et for each
    Par Shb33 dans le forum VC++ .NET
    Réponses: 3
    Dernier message: 25/10/2006, 10h30

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