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

jQuery Discussion :

Modifier l'ancre d'un lien au clic en javascript


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    55
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 55
    Par défaut Modifier l'ancre d'un lien au clic en javascript
    Bonjour à tous,

    J'aimerais savoir s'il est possible de modifier l'ancre ciblée par un lien, de façon dynamique (au clic) en javascript (ou jQuery).

    Du côté de ma page HTML, j'ai un lien qui cible par défaut l'ancre #toto.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <li class="wbrw01im01">
     <div class="item2">
      <img src="pix/small01126.jpg" alt="title" title="" width="100" height="100"/>
      <div class="surcaption">
       <div class="caption">
        <a href="#toto"></a>
       </div>
      </div>
     </div>
    </li>
    Ensuite, via un javascript, ce lien fonctionne un peu comme un bouton (c'est-à-dire qu'il fonctionne en quelque sorte en mode ON/OFF).
    Par défaut, ce lien est sur OFF et cible donc l'ancre toto.

    Une fois qu'il a été cliqué, ce lien/bouton provoque des actions, change de couleur et peut donc être considéré comme sur ON.
    Le clic ammène donc, comme prévu, sur l'ancre #toto.

    Je souhaiterais changer l'ancre ciblée lorsque l'on remet ce bouton sur OFF.
    Par exemple que dans cet état, le clic emmène sur #titi.

    Après quelques recherches, j'ai essayé le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $("$(this) > a[href^='#titi']");
    Mais ça ne semble pas fonctionner.
    Une idée ?

  2. #2
    Membre confirmé Avatar de lightbulb
    Homme Profil pro
    Inscrit en
    Septembre 2008
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Septembre 2008
    Messages : 108
    Par défaut
    Attention en Jquery $(this) est une fonction qui sert à identifier l'élément courant comme en javascript normal le this.

    Essai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <script type="text/javascript">
    function changeSrc(){
    	$('#monlien').attr('src',"#titi");
    }
    </script>
     
    <img src="#toto" id="monlien" />
    <input type="button" value="Change la source" onclick="changeSrc()"/>

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    55
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 55
    Par défaut
    Mhhh… Pas sûr d'avoir tout compris.

    Il n'y aurait pas confusion entre mon lien et mon image (qui se trouve "au-dessus" du lien), entre la div ciblée (href) et la source de l'image (src) ?…

  4. #4
    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 : 55
    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
    Ce n'est pas l'exemple à la lettre qu'il faut regarder mais la méthode utilisée et celle proposée par lightbulb est correcte !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $(this).attr('href',"#titi");
    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

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    55
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 55
    Par défaut
    Merci pour cette précision.

    Ça m'arrange effectivement s'il n'y a pas d'ID dans l'histoire, car j'ai beaucoup de boutons différents les uns à côté des autres qui doivent se comporter de façon identique.

    Dans la mesure où l'élément déclencheur (ce qui est testé par le javascript) est l'élément <li class="wbrw01im01"> tout en haut, comment dois-je rédiger cette instruction ?

    Est-ce un truc du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $((this)>div>div>div>a).attr('href',"#titi");
    ?

    (C'est juste une façon de préciser ma question, je SAIS que ça ne marche pas !)

  6. #6
    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 : 55
    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
    Mais non ! this ne peut en aucun cas être utilisé comme un sélecteur !
    Il faut utiliser les méthodes de parcours du DOM...
    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

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

Discussions similaires

  1. Modifier le contenu d'un lien en javascript
    Par anthropo dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 02/09/2007, 22h16
  2. Lien avec clic plus appui sur une touche
    Par loreleï85 dans le forum Langage
    Réponses: 4
    Dernier message: 20/06/2006, 17h32

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