Menu accordéon jQuery - garder le menu accordéon ouvert sur la page où je suis
J'espère que vous pouvez aider.
Je suis très nouveau pour jQuery et suis en train de travailler sur une période de cinq ou six au niveau de menu accordéon de mon côté navigation. J'ai obtenu la majorité du code j'ai tellement loin de Dane Peterson @ daneomatic.com (merci Dane!). Mais, je suis bloqué sur une chose:
J'aimerais avoir mon accordéon/arbre fonctionne comme ceci:
Quand j'ai naviguer vers le bas dans, disons, le niveau trois, et cliquez sur le lien pour ouvrir la page liée à ce niveau, comment puis-je indiquer une fois le niveau trois du chargement de la page que je suis sur cette page?
Aussi, comment puis-je garder l'arbre ouvert à ce niveau, lorsque je charge la page?
Je suppose que ce que je vous pose est: est-il un moyen pour l'accordéon/arbre de mettre à jour automatiquement pour montrer à quelle page vous en êtes, et avoir l'arbre ouvert à ce niveau-là?
Merci d'avance!
source d'informationauteur MelissaTA
Vous devez vous connecter pour publier un commentaire.
Pour obtenir de l'accordéon pour ouvrir automatiquement la bonne section, en fonction de l'URL, vous commencerez avec l'activation de la
navigation
option avec quelque chose comme:Par défaut, cette option semble pour l'accordéon en-tête de lien qui a un
href
qui correspond à l'URL du fragment (si votre URL est http://somesite.com/about#contact#contact est le fragment) et l'ouvre-tête de lien de l'article. Puisque vous êtes à l'aide de l'accordéon à naviguer sur les différentes pages, vous n'aurez probablement pas l'URL de fragments pour la comparaison, de sorte que vous aurez à écrire un personnalisénavigationFilter
:Vous pouvez utiliser le
navigationFilter
option pour remplacer la façon dont l'accordéon plugin matches de l'en-tête pointe vers l'URL de la page en cours.Jusqu'à présent, nous avons le droit de la section de l'accordéon pour ouvrir fondée sur la page en cours. Ensuite, nous devons mettre en évidence le lien dans la section qui correspond à la page. Vous pourrez le faire avec quelque chose comme:
Ici, nous allons grâce à tous les liens de page dans la barre de navigation de l'accordéon, de la cueillette celui qui correspond à l'URL courante, et l'application d'une
.active
classe, que vous pouvez ensuite le style différemment avec les CSS.Un côté: un autre, sans doute mieux, pour accomplir la deuxième partie consiste à créer la page avec le
.active
classe déjà appliquées sur le lien approprié, mais cela suppose que vous avez le contrôle sur le serveur et que vous savez comment le faire. En fait, si c'est le cas, vous pouvez passer de l'ensemble de lanavigationFilter
chose et de générer un<script>
bloc pour définir laactive
option sur l'accordéon pour ouvrir la section de droite.OK, cette question a été mise sur écoute de moi pendant un moment et pensé que je pourrais poster ma solution à ce problème. (Je suis un peu novice avec JQuery....)
Dans ma situation, j'ai une page principale qui contient le script JQuery pour gérer l'automatisation du menu et j'ai plusieurs pages de contenu qui ont différents menus (j'ai un menu horizontal en travers de la page en-tête et puis l'accordéon JQuery gère le sous-menu, façon de parler).
J'ai ajouté des étiquettes d'identification pour le menu d'en-tête de divs et ensuite placé les éléments suivants dans l'espace réservé de contenu de la page de contenu.
Cela fonctionne parfaitement et il ne me font me demander pourquoi j'ai eu du mal avec ce cours de la dernière semaine ou quand la solution est si simple!
C'est l'un des pièges de JavaScript navigué sur des sites web - votre URL n'est pas réellement le point de votre page, comme une page traditionnelle. Elle rend difficile l'utilisation normale des fonctions du navigateur comme les signets et le bouton de retour.
Une solution de certaines personnes semblent être à l'aide de ces jours, c'est de stocker cette information après le hachage de la partie de l'url.
Par le stockage de l'information à la place de "jsPageIndicator" ci-dessus, vous pouvez ensuite analyser avec le JavaScript après le $(document).ready(), et de vous dire à quelle page doit être chargée. Dans votre cas, cela peut être quelque chose de simple, comme l'indice de l'accordéon qui a le focus (doit être ouvert).
Vous pouvez également regarder la jQuery plugin history.
Ou, comme Alex points ci-après, benalman.com/projects/jquery-bbq-plugin
Vous pouvez le voir ici : http://blog.evaria.com/wp-content/themes/blogvaria/jquery/index-multi.php
Aucun des ci-dessus a fonctionné pour moi. La documentation de jquery ui est une pièce de rechange, et le code source n'a pas laissé de nombreux indices pour quelqu'un qui n'est pas versé dans jquery.
J'ai utilisé de l'accordéon dans une barre latérale, et les liens de chaque section de contenu ont été à l'intérieur des tables, j'ai donc dû suivre mon HTML-structure (une chose fragile), et faire de ce droit, après la création de l'accordéon:
Oui, horrible, la sauvegarde d'un tr, tr, la table et le div, mais il a travaillé, et dans notre cas, nous n'avons pas changé le HTML-structure en mois.
Voici un exemple qui a fonctionné pour moi:
Besoin d'aide avec jQuery UI Accordion navigationFilter option