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 :

$('#madiv').html et événements


Sujet :

jQuery

  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Décembre 2004
    Messages
    213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 213
    Par défaut $('#madiv').html et événements
    Bonjour à tous,

    je rencontre un problème qui a certainement une solution.
    je me sers d'un jquery pour changer l'état d'un bouton avec ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $('#croix').html('<div id="suppr" style="cursor : pointer;"><img src="../picto-admin-supprimer-photo.png" alt="supprimer la photo" /></div>');
    donc sur ma fonction le change une div et la remplace par ce code HTML

    Puis j'ai une bout de code qui écoute #suppr qui fait ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $('#suppr').click(function() {$('#retour_photo_1').attr('style', 'background:#ff6600;');});
    et rien ne se passe quand je clique sur ma div #suppr... ce qui est plus étrange, c'est que si j'écris directement dans mon html le code ci dessous, cela marche parfaitement.
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <div id="suppr" style="cursor : pointer;"><img src="../picto-admin-supprimer-photo.png" alt="supprimer la photo" /></div>

    Pourquoi Est-ce que lorsque c'est jquery qui l'écrit ca ne fonctionne pas ?
    J'ai vérifié le code généré et il me parait bon.

    Vous avez une idée ?

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

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    C'est juste une question de logique : aucun langage de programmation ne fait de divination !
    Affecter un gestionnaire d'événement à un élément qui n'existe pas, ça ne sert à rien et ça ne fait rien. Et le fait que tu ajoutes l'élément plus tard dans le code n'y change rien : si au moment de déclarer le gestionnaire l'élément n'est pas présent, ton code ne fait rien.

    Il existe plusieurs techniques pour pallier cela : affecte le gestionnaire après avoir ajouté l'élément ou utiliser la délégation d'événement (décrit dans la doc de la fonction .on()).
    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

  3. #3
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Décembre 2004
    Messages
    213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 213
    Par défaut
    merci Bovino,

    ton aide m'a été précieuse... je n'avais pas pensé à ca, je suis plutôt PHP que JS
    Du coup, j'ai modifié légèrement le code et surtout j'ai chargé la div (vide) dès le lancement de la page et tout marche correctement maintenant.

    Merci encore

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 132
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 132
    Par défaut
    Bonjour,

    C'est typiquement un d'utilisation de .on() avec délégation il me semble ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $('#croix').on('click', '#suppr', function() {$('#retour_photo_1').attr('style', 'background:#ff6600;');});

  5. #5
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Décembre 2004
    Messages
    213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 213
    Par défaut
    merci devyan pour ce bout de code, je vais essayer de le mettre en place pour comprendre la notion de délégation

  6. #6
    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 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    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 659
    Billets dans le blog
    1
    Par défaut
    a priori promise() pourrait aussi être utile...
    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 !

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

Discussions similaires

  1. [OL-2010] Liens html vers événement du calendrier outlook 2010
    Par yodarod dans le forum Outlook
    Réponses: 1
    Dernier message: 17/03/2014, 12h09
  2. liens html vers événement du calendrier outlook 2010
    Par yodarod dans le forum VBA Outlook
    Réponses: 0
    Dernier message: 16/03/2014, 17h37
  3. Tableau html avec évènements. Orienté objet ou non ?
    Par tidus_6_9_2 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 29/09/2010, 11h12
  4. utilisation de guillemets dans un évènement HTML
    Par giminik dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 28/07/2005, 16h13
  5. [HTML] Probleme avec les événement OnChange et OnClick
    Par G_Kill dans le forum Balisage (X)HTML et validation W3C
    Réponses: 8
    Dernier message: 04/05/2005, 16h06

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