Partage
  • Partager sur Facebook
  • Partager sur Twitter

Changer le libellé d'un lien en cliquant dessus

    21 février 2009 à 19:02:29

    hello...
    Comment faire en sorte qu'une fonction déclenchée par un click sur un lien <a href .... change le libellé du lien lui-même:
    Cela me paraissait ne pas poser de soucis ...mais en fait cela ne semble pas marcher avec ce genre de code.

    <a href="#" onclick="hideshow('hide');" id='info_plus'> Cliquez ici pour lire la suite</a>
    


    la fonction
    function hideshow(choix){
      if(choix=='hide')
            {
                document.getElementById('info_plus').innerHTML='Cliquez ici pour lire la suite';
            }
             else
             {
                document.getElementById('info_plus').innerHTML='Cliquez ici pour masquer la suite';
            }
    }
    


    la fonction si dessus est optimisable +++ ... en fait ... j'ai retiré , pour la clarté, des parties qui ne sont pas indispensables


    • Partager sur Facebook
    • Partager sur Twitter
      21 février 2009 à 19:27:17

      <a href="#" onclick="document.getElementById('info_plus').href='http://www.quelquepart.truc.machin';" id='info_plus'>
      


      ou même:

      <a href="#" onclick="this.href='http://www.quelquepart.truc.machin';" id='info_plus'>
      


      et même encore

      <a href="#" onclick="document.getElementById(document.getElementById(document.getElementById(document.getElementById(this.id).id).id).id).href='http://www.quelquepart.truc.machin';" id='info_plus'>
      
      • Partager sur Facebook
      • Partager sur Twitter
        21 février 2009 à 19:32:55

        @xavier:
        de peur de dézinguer ma fonction actuelle, peux tu me dire si tes propositions recharge la page affichée ?

        Mon but étant via un click sur un lien de faire apparaître une zone masquée et de changer le "lire" par "masquer" SANS RECHARGER LA PAGE en cours.
        d'autre part je souhaite conserver la fonction qui prend un argument et qui est donc utile pour d'autre div et span qui ont d'autres valeurs que "hide" de mon exemple.
        • Partager sur Facebook
        • Partager sur Twitter
          21 février 2009 à 19:35:21

          en fait ta fonction est bonne c'est juste que ton test ne l'est pas.

          Essaie avec choix!='hide'
          • Partager sur Facebook
          • Partager sur Twitter
            21 février 2009 à 19:36:22

            @restimel

            c'est bien ce que je fais non ?

            sorry : pas bien vu le " !"

            j'ai fait le test = y a du mieux
            le texte du lien bascule bien de "Cliquez ici pour lire la suite" vers "Cliquez ici pour masquer la suite"
            mais le reclick ne fait pas la rebascule ! :(
            • Partager sur Facebook
            • Partager sur Twitter
              21 février 2009 à 19:37:42

              excuse moi j'avais fait une coquille et j'ai essayé d'éditer mais trop tard...

              c'est != que je voulais dire

              Mais le problème c'est que tu envoie toujours hideshow('hide') donc tu ne pourra pas revenir dans l'autre situation

              change ta fonction par:

              var hide=false;
              function hideshow(){
                hide=!hide;
                if(choix=='hide')
                      {
                          document.getElementById('info_plus').innerHTML='Cliquez ici pour lire la suite';
                      }
                       else
                       {
                          document.getElementById('info_plus').innerHTML='Cliquez ici pour masquer la suite';
                      }
              }
              


              ou alors il faut aussi changer la valeur du onclick

              avec document.getElementById('info_plus').onclick="hideshow('visible')";
              (à vérifier ce dernier code, je ne suis pas sûr que ça fonctionne)
              • Partager sur Facebook
              • Partager sur Twitter
                21 février 2009 à 19:45:09

                ca fait plus rien :(

                = plus de bascule du texte
                • Partager sur Facebook
                • Partager sur Twitter
                  21 février 2009 à 20:07:52

                  oups excuse moi à la place de if(choix=='hide')
                  il faut mettre if(hide)

                  sinon si tu veux directement changer l'événement c'est .onclick=hideshow('visible'); (ou .onclick=hideshow('hide');)
                  mais pour IE il me semble que c'est quelque chose comme .attachEvent('onclick',hideshow('visible'))

                  par contre cela risque de se répéter à l'infini car tu es toujours dans l'événement onclick donc il faut stopper la propagation.
                  • Partager sur Facebook
                  • Partager sur Twitter
                    21 février 2009 à 20:12:51

                    ah ! ben ca prend bien tournure.
                    merci restimel :)

                    Citation : restimel


                    avec document.getElementById('info_plus').onclick="hideshow('visible')";
                    (à vérifier ce dernier code, je ne suis pas sûr que ça fonctionne)



                    en effet ... l'idée est superbe. Changer la valeur du onclick pour obtenir la bascule
                    un coup onclick vaut "hide" ... cas par défaut en chargeant la page ... et puis cela bascule sur 'visible' ou 'taratata'...

                    mais voilà ... cela ne semble pas coller ! :(
                    peut-on changer la valeur du onclick présent dans une balise <a href ... ?


                    • Partager sur Facebook
                    • Partager sur Twitter
                      23 février 2009 à 13:27:27

                      var hide=true;
                      function hideshow(){
                        if(hide)
                              {
                                  document.getElementById('info_plus').innerHTML='Cliquez ici pour lire la suite';
                              }
                               else
                               {
                                  document.getElementById('info_plus').innerHTML='Cliquez ici pour masquer la suite';
                              }
                      hide=!hide;
                      }
                      


                      Comme ça ça marche pas ? (Pas besoin de changer le onclick en théorie. ^^ )
                      • Partager sur Facebook
                      • Partager sur Twitter
                        24 février 2009 à 8:40:33

                        @golmote: ca colle bien ton script. Décidément ... t'es un costaud !
                        • Partager sur Facebook
                        • Partager sur Twitter

                        Changer le libellé d'un lien en cliquant dessus

                        × 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