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 :

Supprimer la propagation d'événement sur élément


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Supprimer la propagation d'événement sur élément
    bonjour,

    j'aurais besoin de votre aide, car je bloque sur un soucis.
    j'ai un tableau avec une span dans chaque cellule.
    je cherche a exécuter un code quand je clique dans une case, mais un différent, si je clique dans la span.

    le code s'exécute bien quand je clique sur la span, mais les celui de la case aussi.

    quelqu'un peut-il m'aider sur le pb ?
    voici mon code :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    <!doctype html>
    <html lang="fr">
    <head>
      <meta charset="utf-8" />
      <title>Titre</title>
      <style type="text/css">
        td{position: relative;display: inline-block;width: 40px;height: 40px;line-height: 40px;text-align: center;border: solid 1px #000;}
        td span{display: none;}
        td:hover span{display: inline-block;line-height: 15px;position: absolute;top: 0;left: 0; }
      </style>
    </head>
    <body>
      <h1>Essai</h1>
      <table>
        <tr><td>-<span>O</span></td><td>-<span>O</span></td><td>-<span>O</span></td><td>-<span>O</span></td></tr>
        <tr><td>-<span>O</span></td><td>-<span>O</span></td><td>-<span>O</span></td><td>-<span>O</span></td></tr>
        <tr><td>-<span>O</span></td><td>-<span>O</span></td><td>-<span>O</span></td><td>-<span>O</span></td></tr>
        <tr><td>-<span>O</span></td><td>-<span>O</span></td><td>-<span>O</span></td><td>-<span>O</span></td></tr>
      </table>

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $(function(){
        $('td:not(span)').click(function(event){
          console.log('td');
        });
        $('td span').click(function(event){
          console.log('span');
        });
    });
    merci d'avance.

    Ben
    Dernière modification par Bovino ; 31/03/2014 à 08h45. Motif: Merci d'indiquer le langage utilisé ([code=xxx]) pour activer la coloration syntaxique !

  2. #2
    bm
    bm est déconnecté
    Membre extrêmement actif

    Homme Profil pro
    Freelance
    Inscrit en
    Octobre 2002
    Messages
    874
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Freelance
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Octobre 2002
    Messages : 874
    Billets dans le blog
    6
    Par défaut
    Effacer / Afficher une table :

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    <!doctype html>
    <html lang="fr">
    <head>
      <meta charset="utf-8" />
      <title>Titre</title>
      <style type="text/css">
        td{position: relative;display: inline-block;width: 40px;height: 40px;line-height: 40px;text-align: center;border: solid 1px #000;}
        td span{display: none;}
        td:hover span{display: inline-block;line-height: 15px;position: absolute;top: 0;left: 0; }
      </style>
       <script src="https://code.jquery.com/jquery-1.11.0.min.js"></script>
    </head>
    <body>
      <h1>Essai</h1>
      <table>
        <tr><td><span>1</span></td><td><span>-6</span></td><td><span>15</span></td><td><span>8</span></td></tr>
        <tr><td><span>+2</span></td><td><span>+6</span></td><td><span>-2</span></td><td><span>-2</span></td></tr>
        <tr><td><span>+4</span></td><td><span>+O</span></td><td><span>-8</span></td><td><span>+..</span></td></tr>
        <tr><td><span>=7</span></td><td><span>=O</span></td><td><span>=5</span></td><td><span>=25</span></td></tr>
      </table>
    <br>
    <button id="hide">Efface</button>
    <button id="show">Affiche</button>
     
    </body>
    </html>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $(document).ready(function(){
      $("#hide").click(function(){
        $("table").show();
        $("span").hide();
      });
      $("#show").click(function(){
        $("table").show();
        $("span").show();
      });
    });

  3. #3
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 209
    Par défaut
    Bonjour,
    Citation Envoyé par bm
    Effacer / Afficher une table :
    pas sûr que cela soit le problème soumis par benoit1024.

    Le soucis semble plutôt d'être de stopper la propagation de l'événement via la méthode stopPropagation()

    exemple complet
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    <!doctype html>
    <html lang="fr">
    <head>
    <meta charset="utf-8">
    <title>Titre</title>
    <style>
    div{
      width:15em;
      height:15em;
      background:#EEF;
      padding:2em;
    }
    span{
      padding:0.5em;
      border:1px solid blue;
    }
    </style>
    <script src="http://code.jquery.com/jquery-latest.js"></script>
    <script>
    $(document).ready(function(){
      $('div').on('click', function(e){
        e.stopPropagation();
        alert(' click on DIV!');
      });
      $('span').on('click',function( e){
        e.stopPropagation();
        alert(' click on SPAN');
      });
    });
     </script>
    </head>
    <body>
    <div>
      <span>LE texte du SPAN</span>
    </div>
    et le javascript
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $(document).ready(function(){
      $('div').on('click', function(e){
        e.stopPropagation();
        alert(' click on DIV!');
      });
      $('span').on('click',function( e){
        e.stopPropagation();
        alert(' click on SPAN');
      });
    });

  4. #4
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par NoSmoking Voir le message
    Le soucis semble plutôt d'être de stopper la propagation de l'événement via la méthode stopPropagation()
    super, je te remercie, c'est exactement celà
    merci beaucoup de votre aide !!

    Ben

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 22/06/2011, 15h21
  2. Réponses: 3
    Dernier message: 06/05/2010, 10h59
  3. Réponses: 0
    Dernier message: 02/07/2009, 17h00
  4. Propagation des droits sur tous les éléments d'1 site
    Par mazu29 dans le forum SharePoint
    Réponses: 4
    Dernier message: 11/07/2008, 16h06
  5. Réponses: 6
    Dernier message: 23/04/2007, 09h41

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