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 :

Ecouteur commun à plusieurs images


Sujet :

JavaScript

  1. #1
    Membre éclairé
    Homme Profil pro
    Ingénieur en électrotechnique retraité
    Inscrit en
    Décembre 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur en électrotechnique retraité

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 576
    Points : 803
    Points
    803
    Par défaut Ecouteur commun à plusieurs images
    Bonjour à tous,
    J'ai un tableau de données qui ressemble à ceux de phpMyAdmin.
    Comme dans phpMyAdmin, j'ai des images pour l'édition ou l'effacement de lignes de données. J'aimerais savoir comment je peux avoir un écouteur commun sur le clic d'une de ces images, avec juste comme paramètre l'identifiant de l'image ou de la ligne. Est-ce possible? Comment?
    Bien sûr, je peux créer mes images avec un attribut onclick="mafonction(monid)" mais pour être cohérent, avec le reste de mon code, j'aimerais mieux utiliser un écouteur.

  2. #2
    Membre émérite
    Avatar de badaze
    Homme Profil pro
    Chef de projets info
    Inscrit en
    Septembre 2002
    Messages
    1 412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets info
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 412
    Points : 2 522
    Points
    2 522
    Par défaut
    Je pense que tu peux faire comme suit. Je n'ai pas pris des images comme exemple, mais le principe est le même.

    Dans mon exemple querySelectorAll prend tous les input qui ont la class print. Voir la doc de querySelectorAll pour les autres types de sélecteurs.

    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
     
    <!DOCTYPE html>
    <html>
    <head>
    <style type="text/css">
    </style>
    <script>
    function toto() 
    {
      var coll = document.querySelectorAll('input.print');
      for (i=0;i<coll.length;i++)
      {
     coll[i].addEventListener("click", maFonctionClic, false);
      }
    }
    function maFonctionClic(e)
    {
     alert(this.id + ' - ' + e.srcElement.tagName);
    }
    </script>
    </head>
    <body onload="toto()">
    <input class="print" type="checkbox" id="cb1"/><br/> 
    <input class="print" type="checkbox" id="cb2"/><br/> 
    <input class="print" type="checkbox" id="cb3"/><br/> 
    <input class="print" type="checkbox" id="cb4"/><br/> 
    <input class="print" type="checkbox" id="cb5"/><br/> 
    <input class="print" type="checkbox" id="cb6"/><br/> 
    </body>
    </html>
    Cela ne sert à rien d'optimiser quelque chose qui ne fonctionne pas.

    Mon site : www.emmella.fr

    Je recherche le manuel de l'Olivetti Logos 80B.

  3. #3
    Membre éclairé
    Homme Profil pro
    Ingénieur en électrotechnique retraité
    Inscrit en
    Décembre 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur en électrotechnique retraité

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 576
    Points : 803
    Points
    803
    Par défaut
    Merci. Je retiens provisoirement ta solution. Elle revient à créer un écouteur par élément (image dans mon cas). Je laisse cependant ma question pour voir si d'autres solutions existeraient.

  4. #4
    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 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 637
    Points : 66 658
    Points
    66 658
    Billets dans le blog
    1
    Par défaut
    Elle revient à créer un écouteur par élément
    Heu du coup je en pige pas ta notion d'écouteur commun ?...

    le click est au niveau de l'image...

    éventuellement on peut envisager d'encapsuler les images dans un div et de compter sur le propagation pour récupérer l’élément cliqué
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <div id="commun" >
      <input class="print" type="checkbox" id="cb1"/><br/> 
      <input class="print" type="checkbox" id="cb2"/><br/>  
      <input class="print" type="checkbox" id="cb3"/><br/> 
      <input class="print" type="checkbox" id="cb4"/><br/> 
      <input class="print" type="checkbox" id="cb5"/><br/> 
      <input class="print" type="checkbox" id="cb6"/><br/> 
    </div>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    document.getElementById('commun').addEventListener("click", function(e){ 
    console.log( e.target.id) }, false);
    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 !

  5. #5
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 959
    Points : 44 122
    Points
    44 122
    Par défaut
    Bonjour,
    Citation Envoyé par moimp
    J'ai un tableau de données qui ressemble à ceux de phpMyAdmin.
    Comme dans phpMyAdmin, j'ai des images pour l'édition ou l'effacement de lignes de données
    l'élement commun existant, la <table>, je privilégierais également la délégation d'événements comme l'indique SpaceFrog.

  6. #6
    Membre éclairé
    Homme Profil pro
    Ingénieur en électrotechnique retraité
    Inscrit en
    Décembre 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur en électrotechnique retraité

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 576
    Points : 803
    Points
    803
    Par défaut
    Merci à vous tous, me voilà avec deux solutions. Je pense que je vais retenir la seconde en délégation d’événement. Je ne l'ai jamais fait. C'est l'occasion d'essayer.

  7. #7
    Membre éclairé
    Homme Profil pro
    Ingénieur en électrotechnique retraité
    Inscrit en
    Décembre 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur en électrotechnique retraité

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 576
    Points : 803
    Points
    803
    Par défaut
    Merci SpaceFrog et NoSmoking. Après quelques adaptations au cas particulier de mon application, la solution donne satisfaction. Je vous mets +1.

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 24/07/2010, 21h02
  2. Changer plusieurs images d'un coup
    Par YanK dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 18/07/2005, 17h33
  3. [ImageMagick] Générer une image à partir de plusieurs images ?
    Par fichtre! dans le forum Bibliothèques et frameworks
    Réponses: 8
    Dernier message: 16/02/2005, 15h32
  4. [DirectDraw7] Affichage de plusieurs image bmp
    Par SteelBox dans le forum DirectX
    Réponses: 3
    Dernier message: 24/04/2004, 19h00
  5. Economie de mémoire pour plusieur images avec la même source
    Par neness dans le forum Composants VCL
    Réponses: 5
    Dernier message: 18/01/2004, 10h56

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