Partage
  • Partager sur Facebook
  • Partager sur Twitter

Identifier la source d'un évènement javascript

Sujet résolu
    7 septembre 2010 à 18:35:04

    Bonsoir, je cherche à identifier la source d'un évènement html. Par exemple une page à 5 liens, on clic sur l'un et je veux dans mon code js retrouver le lien concerné et lui appliqué un style css, sans avoir à faire un traitement directement dans le lien.
    Merci d'avance pour vos réponses.
    • Partager sur Facebook
    • Partager sur Twitter
      7 septembre 2010 à 18:53:20

      et bien:

      <a id="lien1" onclick="mafonction(this.id)">ton texte</a>
      


      et dans ton code js:

      function mafonction(id)
      {
      var lien=document.getElementById(id).style;
      
      //le reste de ton code ici
      }
      

      • Partager sur Facebook
      • Partager sur Twitter
        7 septembre 2010 à 19:05:36

        Merci pour ta réponse. En fait, c'est ce que je veux éviter. Est il est possible d'avoir une propriété du genre :
        for(var i=0;i<nbr_lien;i++)
          {
          if(document.links.item(i).clicked==true)
             {
               .............
              }
           }
        

        un peu à l'image des checkbox avec la propriété checked.
        • Partager sur Facebook
        • Partager sur Twitter
          7 septembre 2010 à 19:53:00

          c'est très moche est ça te bouffe beaucoup de lignes de code...
          • Partager sur Facebook
          • Partager sur Twitter
            7 septembre 2010 à 19:55:46

            C'est event.target que tu cherches?

            function laFonctionAppelee(event){
              event = event || window.event; //pour la compatibilité avec IE
              var elem = event.target || event.srcElement; //pour la compatibilité avec IE (encore!  )
              alert("L'élément appelé a pour id: "+elem.id);
            }
            

            <a id="lien1" onclick="laFonctionAppelee(event)">texte1</a>
            <a id="lien2" onclick="laFonctionAppelee(event)">texte2</a>
            


            EDIT: j'ai modifié le code pour prendre en compte a remarque de Tiller.
            C'est srcElement à la place de target pour IE (pour tous les autres navigateurs target est accepté)
            • Partager sur Facebook
            • Partager sur Twitter
              7 septembre 2010 à 20:03:07

              @restimel, c'est ce que je cherchais. Un très grand merci.
              • Partager sur Facebook
              • Partager sur Twitter
                7 septembre 2010 à 20:59:28

                Attention ! La propriété target n'existe pas sous IE, il faut utiliser window.event.toElement !
                • Partager sur Facebook
                • Partager sur Twitter
                  8 septembre 2010 à 11:07:39

                  J'ai édité pour prendre en compte ta remarque.
                  Je ne savais pas que IE faisait encore des siennes sur cette propriété. Pourtant il me semblait que target faisait partie des standards...
                  Est-ce que IE9 gérera target?

                  Cependant il semble que pour IE ce n'est pas toElement mais srcElement (source quirksmode, n'ayant pas IE je ne peux pas tester)
                  • Partager sur Facebook
                  • Partager sur Twitter
                    8 septembre 2010 à 19:30:30

                    Effectivement, c'est srcElement, toElement n'existe que pour onmouseover et onmouseout.
                    • Partager sur Facebook
                    • Partager sur Twitter

                    Identifier la source d'un évènement javascript

                    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                    • Editeur
                    • Markdown