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 :

Tabs Jquery et liens


Sujet :

jQuery

  1. #1
    Membre chevronné
    Homme Profil pro
    Webmaster
    Inscrit en
    Janvier 2007
    Messages
    489
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Janvier 2007
    Messages : 489
    Par défaut Tabs Jquery et liens
    Bonjour à tous,

    Pas très copain avec JS/Jquery je sèche complètement sur un problème :
    j'utilise un script de navigation par onglet mais je n'arrive pas à faire un lien d'une div à l'autre : index.html#tab-3 par exemple.
    Cela fonctionne parfaitement en cliquant sur un onglet pas pas via un lien présent dans une div :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    <div id="tabs">
    <ul>
    <li><a href="#tab-1">Menu 1</a></li>
    <li><a href="#tab-2">Menu 2</a></li>
    <li><a href="#tab-3">Menu 3</a></li>
    </ul>
    
    <div id="tab-1">
    Texte div 1 problème :
    <A HREF="#tab-3">MON LIEN VERS DIV 3</A>
    ou <A HREF="index.html#tab-3">MON LIEN VERS DIV 3</A> idem
    </div>
    <div id="tab-2">
    Texte div 2
    </div>
    <div id="tab-3">
    Texte div 3
    </div>
    </div>
    Et voici le JS :
    Code js : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
        <script type="text/javascript">
        $(document).ready(function(){
        $('#tabs div').hide(); // Hide all divs
        $('#tabs div:first').show(); // Show the first div
        $('#tabs ul li:first').addClass('active'); // Set the class for active state
        $('#tabs ul li a').click(function(){ // When link is clicked
        $('#tabs ul li').removeClass('active'); // Remove active class from links
        $(this).parent().addClass('active'); //Set parent of clicked link class to active
        var currentTab = $(this).attr('href'); // Set currentTab to value of href attribute
        $('#tabs div').hide(); // Hide all divs
        $(currentTab).show(); // Show div with id equal to variable currentTab
        return false;
        });
        });
        </script>

    J'ai regardé la doc JQuery concernant les sélecteurs mais rien à faire.
    Si quelqu'un pouvait m'aider ce serait tout simplement fabuleux.

    Merci à vous.

  2. #2
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 198
    Par défaut
    Bonjour,
    Bovino t'as mâché le travail http://dmouronval.developpez.com/tut...s-avec-jquery/

  3. #3
    Membre chevronné
    Homme Profil pro
    Webmaster
    Inscrit en
    Janvier 2007
    Messages
    489
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Janvier 2007
    Messages : 489
    Par défaut
    Merci mais pas avec les liens internes aux divs, ça ne fonctionnera pas

  4. #4
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 198
    Par défaut
    pour suivre un lien d'une DIV à l'autre il te faudra oublier les HREF du type index.html#ancre qui par définition ouvre la page index.html et se place sur l'ancre indiquée.

    A partir du script fourni, il te faut changer d'approche et considérer toutes les balises A appartenant à <div id="tabs">, donc exit $('#tabs ul li a').click(function(){ et bienvenue à $('#tabs a').click(function(){.

    Ensuite il te faut tester que HREF commence par # sinon on laisse faire la nature.

    Enfin il te faut modifier l'aspect de l'onglet même quand il y a clic sur une balise A d'une DIV et non pas d'une LI.

    On se retrouve avec quelque chose comme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
      $(document).ready(function(){
        $('#tabs div').hide();                    // Hide all divs
        $('#tabs div:first').show();              // Show the first div
        $('#tabs ul li:first').addClass('active');// Set the class for active state
    // OUT    $('#tabs ul li a').click(function(){            // When link is clicked
        $('#tabs a').click(function(){            // When link is clicked
     
          $('#tabs ul li').removeClass('active'); // Remove active class from links
    // OUT      $(this).parent().addClass('active');    //Set parent of clicked link class to active
     
          var currentTab = $(this).attr('href');  // Set currentTab to value of href attribute
          if( currentTab.charAt(0) == '#'){
            $('#tabs div').hide();                // Hide all divs
            $(currentTab).show();                 // Show div with id equal to variable currentTab
            // mise du style sur l'onglet
            $('#tabs ul li a').each( function(){
              if($(this).attr('href') == currentTab){
                $(this).parent().addClass('active');    //Set parent of clicked link class to active
              };
            });
            return false;
          }
        });
      });

  5. #5
    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 : 54
    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
    Citation Envoyé par Gaetan_
    Merci mais pas avec les liens internes aux divs, ça ne fonctionnera pas
    Première nouvelle...

    Et il se passe quoi si dans ton code, tu mets un lien du type
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $('#onglets li').eq(1).click()
    ?
    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

  6. #6
    Membre chevronné
    Homme Profil pro
    Webmaster
    Inscrit en
    Janvier 2007
    Messages
    489
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Janvier 2007
    Messages : 489
    Par défaut
    Merci à vous deux c'est parfait.

    Bovino, toutes mes excuses, j'étais passé effectivement à coté du script.

    NoSmoking, super, ca marche pil poil.

    Un grand merci à vous deux.

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

Discussions similaires

  1. Liens d'une page vers pages avec menu tabs jquery ui
    Par kate59 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 0
    Dernier message: 01/06/2015, 19h40
  2. Lien externe qui pointe sur une Tabs jQuery
    Par jeyreem dans le forum jQuery
    Réponses: 1
    Dernier message: 25/07/2014, 17h00
  3. Ajouter contenu "complexe" dans un tab jquery ui ?
    Par kolbek dans le forum jQuery
    Réponses: 1
    Dernier message: 02/07/2011, 22h29
  4. [1.x] tabs jquery avec symfony
    Par hou1919 dans le forum Symfony
    Réponses: 7
    Dernier message: 10/05/2011, 09h33

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