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 :

Récupérer l'ID d'un élément cliqué avec AddListener


Sujet :

JavaScript

  1. #1
    Membre confirmé Avatar de kryogen
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 140
    Par défaut Récupérer l'ID d'un élément cliqué avec AddListener
    Bonjour (et bonne année),

    Bon tout est dans le titre, comment puis-je récupérer l'ID d'un élément cliqué avec AddListener ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    AddListener(??, "click", function () {
            // récupérer les coordonnées
     
            var coordonnees = ??.getAttribute('coords').split(',');
     
            alert(coordonnees[0]+' - '+coordonnees[1]);
        });
    Merci...

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Pour te répondre, il faudrait déjà savoir à quoi correspond AddListener()...
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  3. #3
    Membre extrêmement actif
    Avatar de Golgotha
    Homme Profil pro
    Full-stack Web Developer
    Inscrit en
    Août 2007
    Messages
    1 387
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Full-stack Web Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2007
    Messages : 1 387
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    Même si on ne connait pas vraiment la question, je tente une réponse à base de jQuery, sait on jamais...

    http://jsfiddle.net/EpmLj/

    Consultant et développeur full-stack spécialiste du Web
    faq jQuery - règles du forum - faqs web

  4. #4
    Membre confirmé Avatar de kryogen
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 140
    Par défaut
    ah yaya, autant pour moi, j'ai omis la fonction AddListener :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
        function AddListener(element, event, f) {
            if(element.attachEvent) {
                element["e" + event + f] = f;
                element[event + f] = function () {
                    element["e" + event + f](window.event)
                };
                element.attachEvent("on" + event, element[event + f])
            } else element.addEventListener(event, f, false)
        }

  5. #5
    Expert confirmé
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par défaut
    ben c'est simplement element.id

  6. #6
    Rédacteur
    Avatar de bigboomshakala
    Homme Profil pro
    Consultant Web .NET
    Inscrit en
    Avril 2004
    Messages
    2 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant Web .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 2 077
    Par défaut
    salut,

    uh, je capte rien au IF (le ELSE ok)

  7. #7
    Membre confirmé Avatar de kryogen
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 140
    Par défaut
    merci pour les réponses

    j'ai déjà essayé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
        AddListener(element.id, "click", function () {
            // récupérer les coordonnées
     
            var coordonnees = element.id.getAttribute('coords').split(',');
     
            alert(coordonnees[0]+' - '+coordonnees[1]);
        });
    firebug me dit que element n'est pas défini
    normal ces fonctions sont incluses dans une fonction qui les regroupent...

    pour info (désolé j'aurai du commencer par là), ces fonctions que j'essaye de modifier sont celles de SpryMap. J'ai besoin d'en étendre les fonctionnalités car ce script fonctionne très bien avec Canvas...

  8. #8
    Expert confirmé
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par défaut
    je comprends pas ce que tu fais
    ta fonction est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
        function AddListener(element, event, f) {
            if(element.attachEvent) {
                element["e" + event + f] = f;
                element[event + f] = function () {
                    element["e" + event + f](window.event)
                };
                element.attachEvent("on" + event, element[event + f])
            } else element.addEventListener(event, f, false)
        }
    dans ce code l'id est element.id
    reste à savoir ce que tu veux faire
    déjà je ne vois pas l'utilité de tout ce bric à brac

    ensuite on ne sais pas ce qu'est f je suppose que c'est une fonction mais définie comment ?

    A+JYT

  9. #9
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 198
    Par défaut
    Bonsoir,
    lu en diagonale mais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    AddListener(element.id, "click", function () {
      // récupérer les coordonnées
       var coordonnees = this.getAttribute('coords').split(',');
       alert(coordonnees[0]+' - '+coordonnees[1]);
    });
    ne convient pas ?

    reste à savoir ce que représente element.id

  10. #10
    Membre confirmé Avatar de kryogen
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 140
    Par défaut
    Non déjà essayé.
    Voici le script, pour une vision plus globale, j'ai retiré quelques fonctions pour alléger le bazar...

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
     
    /*******************************************************************************
      
    Usage:
     
    var map = new CanvasMap({
       // The ID of the element being transformed into a map
       id : "",
       // The width of the map (in px)
       width: 800,
       // The height of the map (in px)
       height: 800,
       // The X value of the starting map position
       startX: 0,
       // The Y value of the starting map position
       startY: 0,
       // Boolean true if the map should animate to a stop
       scrolling: true,
       // The time (in ms) that the above scrolling lasts
       scrollTime: 300,
       // Boolean true if the map disallows moving past its edges
       lockEdges: true,
       // The CSS class attached to the wrapping map div
       cssClass: ""
    });
     
    *******************************************************************************/
     
    function CanvasMap(param) {
     
    (...)
     
        /***************************************************************************
         * Name : AddListener()
         * Description (EN) : Adds an event listener to the specified element.
         * Description (FR) : Ajoute un suivi d'événement à un élément spécifique.      
         * Parameters (EN) : element - The element for which the listener is being added
         *                   event - The event for which the listener is being added
         *                   f - The function being called each time that the event occurs
         * Parameters (FR) : element - L'élément pour lequel un suivi est ajouté
         *                   event - L'événement pour lequel un suivi est ajouté
         *                   f - La fonction appelée chaque fois que l'événement se produit                  
         **************************************************************************/
     
        function AddListener(element, event, f) {
            if(element.attachEvent) {
                element["e" + event + f] = f;
                element[event + f] = function () {
                    element["e" + event + f](window.event)
                };
                element.attachEvent("on" + event, element[event + f])
            } else element.addEventListener(event, f, false)
        }
     
    (...)
     
        var m = this;
        m.map = document.getElementById(param.id); // 
        m.width = typeof param.width == "undefined" ? 800 : param.width;
        m.height = typeof param.height == "undefined" ? 800 : param.height;
        m.scrolling = typeof param.scrolling == "undefined" ? true : param.scrolling;
        m.scrollTime = typeof param.scrollTime == "undefined" ? 300 : param.scrollTime;
        m.lockEdges = typeof param.lockEdges == "undefined" ? true : param.lockEdges;
        m.viewingBox = document.createElement("div");
        if(typeof param.cssClass != "undefined") m.viewingBox.className = param.cssClass;
        m.mousePosition = new Coordinate;
        m.mouseLocations = [];
        m.velocity = new Coordinate;
        m.mouseOver = true; // ajoute le curseur dndUp
        m.mouseDown = false;
        m.timerId = -1;
        m.timerCount = 0;
        m.map.parentNode.replaceChild(m.viewingBox, m.map);
        m.viewingBox.appendChild(m.map);
        m.viewingBox.style.overflow = "hidden";
        m.viewingBox.style.width = m.width + "px";
        m.viewingBox.style.height = m.height + "px";
        m.viewingBox.style.position = "relative";
        m.map.style.position = "absolute";
        MoveMap(typeof param.startX == "undefined" ? 0 : -param.startX, typeof param.startY == "undefined" ? 0 : -param.startY);
     
    (...)
     
        /***************************************************************************
         * click event handler / gestionnaire d'événement click
         **************************************************************************/
     
        AddListener(element.id, "click", function () {
            // récupérer les coordonnées
     
            var coordonnees = this.getAttribute('coords').split(',');
     
            alert(coordonnees[0]+' - '+coordonnees[1]);
        });
     
    };

  11. #11
    Expert confirmé
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par défaut
    encore une fois que veux tu faire
    car ton code est abracadabrant (tu définis une fonction qui prend un élément en argument et tu l'appelle en lui passant un id ça n'a pas de sens)
    on peux dire tout ce que tu veux on ne sais pas quel est le problème donc on ne peux pas t'aider.


    A+JYT

  12. #12
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    m.map = document.getElementById(param.id);
    C'est assez amusant comme instruction...
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  13. #13
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 198
    Par défaut
    Citation Envoyé par Bovino
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    m.map = document.getElementById(param.id);
    C'est assez amusant comme instruction...
    il a l'oeil (*) le bougre

    Vu ton contexte je ferais un simple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    AddListener(m.map, "click", function(){
      console.log( 'x: ', m.mousePosition.x , ',y: ', m.mousePosition.y);
    });

    (*)Oeil de boeuf bien sûr

  14. #14
    Membre confirmé Avatar de kryogen
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 140
    Par défaut
    Non mais je vous ai dit que je modifiais un script existant
    Mais je me suis débrouillé autrement, ce n'est pas heureux mais cela fonctionne.
    En gros pour cette fonction - dont vous pouvez voir la démo ici - :

    http://candrews.net/sandbox/spryMap/

    Il me manquait deux choses :
    - pouvoir faire un zoom "réel" avec canvas
    - pouvoir en cliquant sur un lien chercher des coordonnées ou centrer le bazard.

    Et c'est maintenant chose faite...

    Merci tout de même, je m'y suis mal pris

    Banzaï !

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

Discussions similaires

  1. Récupérer le numéro de l'élément cliqué
    Par Kamoo dans le forum jQuery
    Réponses: 2
    Dernier message: 23/10/2013, 14h35
  2. [JDOM] Récupérer valeur d'un élément XML avec JDOM
    Par HackerNet dans le forum Format d'échange (XML, JSON...)
    Réponses: 6
    Dernier message: 22/06/2013, 03h35
  3. Récupérer élèment jcombobox avec accesseurs
    Par cl3ms dans le forum Débuter avec Java
    Réponses: 3
    Dernier message: 03/04/2012, 20h41
  4. Réponses: 2
    Dernier message: 16/11/2009, 13h58
  5. CheckBoxList : récupérer les éléments sélectionnés avec javaScript
    Par kroukse dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 13/11/2009, 17h04

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