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 :

Comment puis-je déclencher un événement sur un élément fils sans activer l'élément parent ?


Sujet :

jQuery

  1. #1
    Membre actif Avatar de rivsc
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2008
    Messages
    213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2008
    Messages : 213
    Points : 275
    Points
    275
    Par défaut Comment puis-je déclencher un événement sur un élément fils sans activer l'élément parent ?
    Bonjour,

    Voilà mon problème, j'ai un element parent eltp sur lequel j'ai un trigger click
    et dans celui ci j'ai un element fils eltf2. Je veux déclencher l'évènement de eltf2 sans déclencher eltp.

    html

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <div class="eltclick" id="eltp">
      <div class="eltclick" id="eltf1">
     
      </div>
      <div class="othereltclick" id="eltf2">
     
      </div>
    </div>
    Jquery

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    $(function() {
      $(".eltclick").click(function(event){
         /* Empeche le déclenchement de eltp quand on clique sur eltf1 */
         /* ne marche pas pour eltf2 */
         event.stopImmediatePropagation();
         /* Code à executer */
      });
     
      /* Pas de déclenchement */
      $(".othereltclick").click(function(){
         alert('test');
         /* Code à executer */
      });
    });
    Je m'attends à ce que 'test' s'affiche quand je clique sur eltf2 ! Quelqu'un a une idée ?
    Merci.

  2. #2
    Membre actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2006
    Messages
    205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2006
    Messages : 205
    Points : 285
    Points
    285
    Par défaut Pour stopper
    un évènement utilise ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    $(function() {
    	  $(".eltclick").click(function(event){
    			alert('autre');
    	  });
     
     
    	  $(".othereltclick").click(function(e){
    	     alert('test');
    	     /* Code à executer */
     
    	     /* stop */
    	     e.stopPropagation();
    	  });
    	});

  3. #3
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Points : 22 933
    Points
    22 933
    Billets dans le blog
    125
    Par défaut
    Bonjour.

    Une autre possibilité :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    $("#eltp").click(function(){
    	alert("eltp !");
    });
     
    $("#eltf1").click(function(){
    	alert("eltf1 !");
    	return false; // empêche l'action par défaut et la transmission de l'événement
    });
     
    $("#eltf2").click(function(){
    	alert("eltf2 !");
    	return false;
    });

  4. #4
    Membre actif Avatar de rivsc
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2008
    Messages
    213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2008
    Messages : 213
    Points : 275
    Points
    275
    Par défaut
    Merci pour vos réponses j'avais plus ou moins compris le fonctionnement (return false).

    Le comportement obtenu m'a induit en erreur. J'avais simplifié mon code ici, en réalité j'ajoute des éléments au DOM et donc il me fallait réinitialisé le

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
      $(".othereltclick").click(function(){
         alert('test');
         /* Code à executer */
      });
    après la modification du DOM, pour que les nouveaux éléments soient pris en compte.

    Merci

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 12/07/2010, 22h02
  2. Déclencher un événement sur une propriété de ma classe
    Par Gregory.M dans le forum Windows Forms
    Réponses: 2
    Dernier message: 02/06/2009, 16h13
  3. [JComboBox] ne pas déclencher d'événement sur un addItem
    Par Djakisback dans le forum Composants
    Réponses: 9
    Dernier message: 28/05/2008, 17h39
  4. Réponses: 1
    Dernier message: 27/05/2008, 08h44
  5. Réponses: 13
    Dernier message: 21/12/2005, 16h18

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