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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    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
    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 très actif
    Homme Profil pro
    bricoleur par les mots
    Inscrit en
    Avril 2015
    Messages
    744
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 80
    Localisation : France, Seine Maritime (Haute Normandie)

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

    Informations forums :
    Inscription : Avril 2015
    Messages : 744
    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

  3. #3
    Membre averti
    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
    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