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

JavaScript Discussion :

Incompréhension sur événement


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Août 2013
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2013
    Messages : 19
    Points : 24
    Points
    24
    Par défaut Incompréhension sur événement
    Bonjour à tous,

    Je vous solicite car je suis face a un mystère que je ne comprend pas.
    Voici le code exemple
    HTML
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
      <div id="parent">
        <div id="enfant">Enfant</div>
      </div>

    Le js
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    var enfant = document.getElementById('enfant');
    var parent = document.getElementById('parent');
     
    enfant.addEventListener('click', function(){
      alert();
    }, false);
     
    parent.innerHTML+='<div>ajout</div>';
    Question : Pourquoi un innerHTML sur le parent fait sauté l'event sur l'enfant.
    Je ne cherche pas de solutions, je cherche à comprendre pourquoi (spécificité du dom, des events, ....).
    Merci par avance aux gens se penchant sur le problème.

    Le code sur CodePen => http://codepen.io/anon/pen/PqEjXK

  2. #2
    Membre expérimenté
    Homme Profil pro
    bricoleur par les mots
    Inscrit en
    Avril 2015
    Messages
    714
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : bricoleur par les mots
    Secteur : Distribution

    Informations forums :
    Inscription : Avril 2015
    Messages : 714
    Points : 1 598
    Points
    1 598
    Par défaut
    jour

    quand on fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    parent.innerHTML+='<div>ajout</div>';
    sa revient au meme que

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    parent.innerHTML=parent.innerHTML+'<div>ajout</div>';
    tu copie le html du parent sans les evenements que tu ré-inserre avec le html suplementaire en écrasant l'ancien html

    en gros tu remplace le html et les evenements associer par du html sans evenements
    Plus vite encore plus vite toujours plus vite.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Août 2013
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2013
    Messages : 19
    Points : 24
    Points
    24
    Par défaut
    c'est bien se que je pensait, merci pour cette réponse rapide et éxplicite.

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

Discussions similaires

  1. [JRE] Erreur incompréhensible sur solaris
    Par Yoops dans le forum Langage
    Réponses: 1
    Dernier message: 31/05/2006, 14h39
  2. Problème sur évènement d'une liste déroulante
    Par krfa1 dans le forum Access
    Réponses: 7
    Dernier message: 05/05/2006, 08h03
  3. incompréhension sur l'utilisation des sessions
    Par cladsam dans le forum Langage
    Réponses: 12
    Dernier message: 31/01/2006, 12h28
  4. Problème sur évènement
    Par Azharis dans le forum Access
    Réponses: 2
    Dernier message: 12/01/2006, 16h36
  5. [O9i][Win][OMS]Erreur sur événement
    Par Fabien Celaia dans le forum Oracle
    Réponses: 4
    Dernier message: 05/11/2004, 15h00

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