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 :

Mettre un lien sélectionné en exergue


Sujet :

jQuery

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    121
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 121
    Par défaut Mettre un lien sélectionné en exergue
    Bonjour,

    je suis en train de mettre en place une technique pour mettre en valeur dans un menu le lien de la page visité.

    Mes liens sont dans les panneaux d'un accordéon toujours visible et je voudrais que le lien de la page en cours soient affiché avec un style différent.
    j'ai pensé à la technique suivante et je voudrais savoir si elle n'est pas trop tordue et si elle et correcte par rapport aux usages de développement.

    l'accordéon est contenu dans un div <div id="main">

    pour chaque page, je rajoute un attribut alt avec une valeur unique.

    <div id="main" alt="ab00">


    Dans mon accordéon, chaque balise <a> de lien a un ID unique qui correspond à la page vers laquelle ce lien pointe.

    <li class="menuLink"><p><a id="ab00" href="/html/la-gargouille.php?id=0"><img src="/images/th/thb_gargouille.jpg" /> ... etc

    dans mon code Jquery, je récupère la valeur de l'attribut ALT et je cherche le lien qui a cet ID puis je lui modifie son css:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    var linkName = "#"+ $("#main").attr("alt");
    $(linkName).css({
    	"color":"green",
    	"border": "1px solid red"
    	});
    cette méthode fonctionne, qu'en pensez vous ??
    au début je voulais utiliser l'attribut TITLE mais dans ce cas la valeur de l'attribut s'affiche au survol du DIV.

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 661
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 661
    Billets dans le blog
    1
    Par défaut
    pourquoi vouloir réinventer le fil a couper la poudre d'eau tiède ?

    il suffit d'attribuer un className ...
    ou simplement utiliser le css et la pseudo classe visited ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    121
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 121
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    pourquoi vouloir réinventer le fil a couper la poudre d'eau tiède ?

    il suffit d'attribuer un className ...
    ou simplement utiliser le css et la pseudo classe visited ...
    oui, mais je veux que le lien n'ait le css que dans un cas précis....
    c'est à dire lorsque la page affichée est celle pointée par le lien.

    si tu as une technique plus simple je suis preneur...

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    121
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 121
    Par défaut
    Peut être devrais préciser que mon menu est dans un fichier unique en php que je charge avec un include donc je ne sais pas à l'avance quel lien je dois mettre en exergue...

    c'est le contexte donné par l'attribut ALT que je rajoute dans chaque page qui me donne un couple page/lien unique.

  5. #5
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 661
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 661
    Billets dans le blog
    1
    Par défaut
    ben colle juste un classeName ...
    ta page est genérée par php ?
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    121
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 121
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    ben colle juste un classeName ...
    en changeant le css, c'est comme si j'attribuais une classe.. non??
    pour que je ne modifie qu'un seul lien il faut bien que je le caractérise dans un contexte précis, celui de la page visée... non?

    Citation Envoyé par SpaceFrog Voir le message
    ta page est genérée par php ?
    Pas vraiment non, mais j'ai mis le menu dans un fichier unique que je charge avec un include, comme ça si je dois modifier un lien, je n'ai pas à modifier 40 ou 50 pages html, ça va de soi...
    C'est uniquement cet include qui justifie l'utilisation de php.

  7. #7
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 661
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 661
    Billets dans le blog
    1
    Par défaut
    oui modifier le css revient au même au final
    mais attribuer un className est plus rapide et facile a maintenir
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    121
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 121
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    oui modifier le css revient au même au final
    mais attribuer un className est plus rapide et facile a maintenir
    mais en fait qu'appelles tu un className? c'est une fonction spéciale de jQuery?

  9. #9
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 661
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 661
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    .pageactuelle {
     color:red;}
     
    .autrepage {
    color:black;
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a id="lien" class="autrepage">lkjlkjlkj</a>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <input type="button" onclick="$('#lien').toggleClass('pageactuelle');" value="test" />
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    121
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 121
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <input type="button" onclick="$('#lien').toggleClass('pageactuelle');" value="test" />
    ah oui, et bien non, dans mon cas ça ne peut pas marcher car à chaque click je charge une nouvelle page qui elle charge le menu par l'intermédiaire de l'include... donc le seul moyen de savoir quel lien a été cliqué, il m'a semblé que c'était en associant un attribut de la nouvelle page qui a la même valeur que l'ID du lien cliqué...

    en passant par l'include d'un fichier php pour le menu, je centralise le menu dans un seul fichier et j'accélère le chargement puisque ce fichier reste dans le cache.

    j'espère que je suis clair dans mon exposé.
    La technique fonctionne parfaitement, je voulais juste savoir si il en existait d'autres.

  11. #11
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 661
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 661
    Billets dans le blog
    1
    Par défaut
    si c'est une nouvelle page qui est chargé à chaque fois :

    soit tu peux mettre le class avec un langage serveur
    soit tu seras obligé de passer un id dans l'url en get et recupérer l'id au chargement de ta page pour attribuer le class
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  12. #12
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    121
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 121
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <input type="button" onclick="$('#lien').toggleClass('pageactuelle');" value="test" />
    je me pose une question sur ton exemple...

    si on applique toggleClass sur un élément qui a dejà une classe, il la garde?
    dans le cas de ton exemple, le #lien ne finirait pas avec les deux classes...??
    .pageactuelle et .autrepage qui ont des valeurs contradictoires...

  13. #13
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 661
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 661
    Billets dans le blog
    1
    Par défaut
    non toggle classe fait un swap ...

    addClass ajoute
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  14. #14
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    121
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 121
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    non toggle classe fait un swap ...

    addClass ajoute
    merci pour la précision utile ....

  15. #15
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    121
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 121
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    soit tu seras obligé de passer un id dans l'url en get et recupérer l'id au chargement de ta page pour attribuer le class
    finalement c'est ce que je fais, en ayant mis au préalable un attribut alt dans la page qui est chargée et en récupérant cet attribut avec $("#main").attr("alt");

    En fait je voulais savoir si la balise alt pouvait servir à cela, tout en restant dans les 'règles de l'art'....

  16. #16
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 661
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 661
    Billets dans le blog
    1
    Par défaut
    ta logique m'echappe ????

    si tu peux mettre un truc dasn le alt ... pourquoi tu peux pas directement le mettre dans le class ????
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  17. #17
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    121
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 121
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    ta logique m'echappe ????

    si tu peux mettre un truc dasn le alt ... pourquoi tu peux pas directement le mettre dans le class ????
    parce que le fait de savoir si un lien du menu a telle classe dépend de quelle page est chargée et le menu est unique, donc je ne peux pas le savoir à l'avance.

    par exemple le lien a#b01 n'aura la classe .bidule que si la page ayant l'attribut alt="b01" (dans la div contenant le menu) est chargée...

  18. #18
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 661
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 661
    Billets dans le blog
    1
    Par défaut
    le menu est unique ...

    tu le charges comme dans ta page ???
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  19. #19
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    121
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 121
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    le menu est unique ...

    tu le charges comme dans ta page ???
    comme ça ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php include('menu.inc.php'); ?>

    en fait il contient une partie du <head> le début du <body>, l'entête et le menu qui sont communs à toutes les pages....

  20. #20
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 661
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 661
    Billets dans le blog
    1
    Par défaut
    ben ?????

    mets dans ton menu la classe avec php ...


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    class="<?php  echo (testsurpage) ?'active':'pasactive'; ?>"
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

Discussions similaires

  1. Réponses: 2
    Dernier message: 29/05/2006, 17h28
  2. [HTML] Mettre un lien sur une image
    Par mavina dans le forum Balisage (X)HTML et validation W3C
    Réponses: 8
    Dernier message: 24/04/2006, 16h34
  3. [FLASH MX] Ou mettre mon lien ??
    Par skybuck dans le forum Flash
    Réponses: 3
    Dernier message: 27/12/2005, 11h37
  4. [JTextPane] Mettre le texte sélectionné en gras
    Par serwol dans le forum Composants
    Réponses: 4
    Dernier message: 18/10/2005, 15h46
  5. [Lien hypertexte]Mettre un lien dans un JTextPane
    Par Pill_S dans le forum Composants
    Réponses: 8
    Dernier message: 23/05/2004, 20h20

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