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 :

Récupération de données ne change pas


Sujet :

jQuery

  1. #1
    Membre régulier
    Profil pro
    IT Développeur
    Inscrit en
    Mars 2009
    Messages
    274
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Développeur

    Informations forums :
    Inscription : Mars 2009
    Messages : 274
    Points : 96
    Points
    96
    Par défaut Récupération de données ne change pas
    Bonjour,
    Sur une page, je modifie le statut d'un utilisateur lorsqu'on clique sur l'élément ci-dessous.

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <span data-status="2" id="23" class="badge bg-success float-end" onclick="toggleAccountStatus(23)">Compte actif</span>

    En Jquery, je modifie notamment l'attribut "data-status" par 4 quand il est à 2 et par 2 quand il est à 4.
    Pour cela, je récupère le status comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var Status = $('#23').data('status');
    Cela fonctionne une première fois mais lorsque je clique une seconde fois et que j'essaie à nouveau de récupérer le status de la même manière càd
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var Status = $('#23').data('status');
    il retourne toujours l'ancienne valeur alors que dans le code Html elle a été modifié.

    Comment puis-je faire?

    Merci

  2. #2
    Membre régulier
    Profil pro
    IT Développeur
    Inscrit en
    Mars 2009
    Messages
    274
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Développeur

    Informations forums :
    Inscription : Mars 2009
    Messages : 274
    Points : 96
    Points
    96
    Par défaut
    J'ai finalement trouvé une explication ici https://forum.jquery.com/topic/jquer...ata-attributes.
    .data("Quelquechose") provient du cache et attr('Quelquechose') provient du DOM.

    En espérant que cela puisse en aider d'autres.

  3. #3
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 939
    Points : 44 112
    Points
    44 112
    Par défaut
    Bonjour,
    c'est effectivement souvent une prise de tête, lié à une confusion, la documentation officielle nous le rappelle quand même, par exemple :
    Citation Envoyé par jQuery.data()
    Using the data() method to update data does not affect attributes in the DOM. To set a data-* attribute value, use attr.
    C'est effectivement toujours bon de le rappeler :

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 08/01/2017, 17h53
  2. Pas de récupération de données d'un serveur distant
    Par loviso dans le forum API standards et tierces
    Réponses: 1
    Dernier message: 09/06/2013, 23h18
  3. Réponses: 4
    Dernier message: 16/02/2012, 15h27
  4. Récupération de données getElementById qui fonctionne pas
    Par cuisto44000 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 15/01/2012, 23h10
  5. [MySQL] pas de récupération des donnés d'un formulaire
    Par hiba_info dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 21/03/2010, 13h37

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