Partage
  • Partager sur Facebook
  • Partager sur Twitter

Changer l'evenement apres un clic.

Sujet résolu
    12 juillet 2010 à 17:12:23

    Bonjour , j'aimerais pouvoir changer l'evement d'une div quand je clique dessus. Illustration:

    <div id="defang"  onClick="anglais()">
    <img style="width: 60px; height: 45px;" alt="" 
    src="/public/monsite/image/rouge.jpg" align="left"></div>
    

    devrait se transformer en :

    <div id="defang2"  onClick="anglais2()">
    <img style="width: 60px; height: 45px;" alt="" 
    src="/public/monsite/image/rouge.jpg" align="left"></div>
    


    J'ai deja trouvé un moyen de changer le nom de la div (defang en defang2):

    function anglais()
    
    {
    var sp1 = document.createElement("div");
    sp1.setAttribute("id", "defang2");
    var sp1_content = document.createTextNode("");
    sp1.appendChild(sp1_content);
    var sp2 = document.getElementById("defang");
    var parentDiv = sp2.parentNode;
    parentDiv.replaceChild(sp1, sp2);
    }
    



    Il me manque le moyen de changer onClick="anglais()" en onClick="anglais2()"
    Merci de votre aide.

    • Partager sur Facebook
    • Partager sur Twitter
      12 juillet 2010 à 17:25:43

      Au lieu de vouloir changer l'évènement, le plus simple c'est de faire quelque chose comme

      <div id="defang"  onclick="anglais(this.id)">
      


      Ensuite :

      function anglais(id)
      
      {
         if(id=="defang") {
           var sp1 = document.createElement("div");
           sp1.setAttribute("id", "defang2");
           var sp1_content = document.createTextNode("");
           sp1.appendChild(sp1_content);
           var sp2 = document.getElementById("defang");
           var parentDiv = sp2.parentNode;
           parentDiv.replaceChild(sp1, sp2);
        }
        else {
      
       .....
        }
      }
      
      • Partager sur Facebook
      • Partager sur Twitter
        12 juillet 2010 à 17:52:08

        bin , ca marche pas chez moi, tout simplement parcque quand je clique une premiere fois sur l'element qui contient onclick, ce dernier disparait . Je peux donc recliquer dessus , ca ne changeras rien , puisqu'aucun evenement n'en sera associé.
        Illustration page chargé:
        <div id="defang" onclick="anglais(this.id)">
        <img style="width: 60px; height: 45px;" alt="" src="/public/monsite/image/rouge.jpg" align="left"></div
        
        >
        element cliqué (au passage tu remarqueras que tout l'interieur de la div a disparu):
        <div id="defang2"></div>
        

        Ou alors , j'ai du mal comprendre ta solution.
        • Partager sur Facebook
        • Partager sur Twitter
          12 juillet 2010 à 18:15:45

          En fait, j'avais juste donne le principe général en reprenant ton code, mais je le trouve bien complique pour le coup :

          Pourquoi créer un nouvel élément ici?

          Je ferai :

          <div id="defang"  onclick="anglais(this)">
          


          function anglais(elt)
          
          {
             if(elt.id=="defang") {
             elt.setAttribute("id", "defang2");
             }
             else {
             elt.setAttribute("id", "defang");
             }
          }
          


          C'est pas juste ca que tu cherches a faire?
          • Partager sur Facebook
          • Partager sur Twitter
            12 juillet 2010 à 18:46:40

            Effectivement , surpuissant ce machin , la fonction précédente que j'avais construite qui faisait la meme chose faisait plus de 40 lignes!
            Tu sais ou je pourrais trouver de la doc sur ce que t'as utilisé (c'est de la manip de dom je suppose).
            • Partager sur Facebook
            • Partager sur Twitter
              12 juillet 2010 à 18:50:13

              Tu peux checker ces 2 liens :

              https://developer.mozilla.org/fr/DOM/element.setAttribute

              ou http://www.nanoum.net/blog/9_setAttribute.html

              C'est rare les gens qui se renseignent après avoir obtenu la solution, ca fait plaisir de voir qu'on aide pas dans le vide ;)
              • Partager sur Facebook
              • Partager sur Twitter
                12 juillet 2010 à 20:09:07

                Vu le temps que j'ai perdu avec des fonction inutile , j'ai tout a gagner a me renseigner.
                Merci de ton aide.
                • Partager sur Facebook
                • Partager sur Twitter

                Changer l'evenement apres un clic.

                × 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