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 la source d'un événement et passage en paramètre avec addEventListener


Sujet :

JavaScript

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2015
    Messages : 3
    Par défaut Récupérer la source d'un événement et passage en paramètre avec addEventListener
    Bonjour, je souhaiterai récupérer la source d'un événement au clic sur un élément d'une liste pour ensuite traiter des données, mais je ne sais pas trop comment faire.
    J'ai regardé un peu à droite à gauche sur internet, en trouvant des bout de code javascript qui me semblent corrects, il me reste plus qu'à trouver la solution pour passer un paramètre dans une fonction avec addEventListener.

    Pour cela je dispose du code HTML suivant :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <ul>
          <li id="time0"><p>6 trimestres</p><p>18 mois</p></li>
          <li id="time1"><p>8 trimestres</p><p>24 mois</p></li>
          <li id="time2"><p>10 trimestres</p><p>30 mois</p></li>
    </ul>
    Et le javascript qui va avec :
    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
    document.getElementById('time0').addEventListener('click', getTimeRow); //Que mettre ici?
    document.getElementById('time1').addEventListener('click', getTimeRow);
    document.getElementById('time2').addEventListener('click', getTimeRow);
    function getTimeRow(event) {
    	event = event || window.event; //pour la compatibilité avec IE
    	var elem = event.target || event.srcElement; //pour la compatibilité avec IE
    	var timeRow = 0;
    	if (elem.id == "time1") {
    		timeRow = 1;
    	} 
    	else {
    		if (elem.id == "time2") {
    			timeRow = 2;
    		}
    	}
            console.log(timeRow);
    }
    Je sais que ça fonctionne avec :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <li id="time1" onclick="getTimeRow(event);"><p>8 trimestres</p><p>24 mois</p></li>
    Mais ce n'est pas ce que je veux, d'ailleurs j'obtiens parfois une valeur qui ne correspond pas à l'élément de la liste ciblé, est-ce qu'il y aurait une erreur dans mon javascript?


    Bref j'ai essayé ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById('time0').addEventListener('click', getTimeRow(event));
    Mais ça ne marche pas.


    Si quelqu'un a une solution je suis preneur, merci d'avance !

  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

    pour mettre des parametres il faut utiliser une fonction annonyme

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById('time0').addEventListener('click',function(event){getTimeRow(event)});
    et petite precision on ne peut retirer un evenement ajouté avec un fonction annonyme du fait justement qu'elle n'a pas de nom


    maisi comme il s'agit du parametre event il est implicitement declaré il n'est donc pas utile de le preciser donc la syntaxe est bonne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById('time0').addEventListener('click', getTimeRow);
    essai avec currentTarget plutot que target et aussi tu fais un teste pour savoir si le navigateur est internet explorer <=8 mais ce teste est inutile car la syntaxe pour ie <=8 utilise pour l'ajout d'evenement attachevent

    et aussi tu a peut etre aussi un probleme de propagation d'evenement

Discussions similaires

  1. [PHP-JS] Passage de paramètre avec window.open
    Par AngieP dans le forum Langage
    Réponses: 1
    Dernier message: 18/01/2008, 09h57
  2. [wsadmin] Passage de paramètre avec jacl ?
    Par Bourbaky dans le forum Websphere
    Réponses: 4
    Dernier message: 30/11/2007, 14h24
  3. Passage de paramètres avec Redirect
    Par abir84 dans le forum Ruby on Rails
    Réponses: 4
    Dernier message: 24/09/2007, 10h51
  4. Passage de paramètres avec DLL Delphi
    Par GroovyBaby dans le forum C#
    Réponses: 2
    Dernier message: 08/03/2007, 14h51
  5. Passage de paramètre avec POST
    Par boulette85 dans le forum Langage
    Réponses: 4
    Dernier message: 28/02/2007, 20h59

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