Je dois appliquer une classe ".selected" à un élément de navigation lorsque l'utilisateur est sur la page correspondante, de sorte que lorsque l'utilisateur clique sur "Products", il va à la page des produits mais l'article de navigation Produits reste sélectionné. Comment puis-je accomplir cela en utilisant jQuery? Je suppose que je devrais obtenir l'URL de la page et appliquer le style à l'élément de nav correspondant, correct?Appliquer une classe basée sur la page
Répondre
en supposant que l'élément que vous voulez style .selected
a un identifiant identique au fichier html actuellement dans le navigateur:
$(document).ready(function() {
...
var page = window.location.href.match(/\/(\w+).htm/)[1];
$('#' + page).addClass('selected');
...
Je suppose que vous allez faire une sorte de système AJAX où vous ne serez pas recharger le menu à chaque clic, sinon cela devrait certainement être fait côté serveur. Sinon, vous pouvez utiliser les éléments suivants
HTML
<ul id='main'>
<li>menu</li>
<li>menu</li>
<li>menu</li>
</ul>
Javascript:
$('ul#main > li').click(function() {
$('ul#main > li.selected').removeClass('selected');
this.setAttribute('class','selected');
});
Voici un lien pour l'essayer: http://jsfiddle.net/6zpJX/
serait facile à juste, '$ ('ul # principal> li') .cliquez sur (function() {$ (this) .addClass ('selected'). Siblings(). RemoveClass ('selected');}); ^^, – Reigel
Voici un simple Par exemple, si vous souhaitez faire correspondre l'URL complète ('http://example.com/mydir/mypage.html '):
$(function() {
var url = window.location;
$('a[href="' + url + '"]').addClass('selected');
});
Ou, pour correspondre au chemin (' /mydir/mypage.html '):
$(function() {
var url = window.location.path;
$('a[href="' + url + '"]').addClass('selected');
});
- 1. Voir la page Source sur une implémentation basée sur ajax
- 2. Jquery - Appliquer la classe basée sur le contenu de <a>
- 3. Usurpation d'identité basée sur la classe
- 4. Validation JQuery basée sur la classe?
- 5. Get classe et appliquer une autre classe
- 6. jQuery appliquer la classe sous
- 7. Android: vue personnalisée basée sur la mise en page: comment?
- 8. Comment appliquer une classe CSS sur un MVC Html.TextBox
- 9. Comment appliquer CSS localement sur une page en ligne?
- 10. Comment appliquer la formule à la cellule basée sur la condition IF dans Excel
- 11. Qu'est-ce qu'une classe basée sur une pile?
- 12. itérateur personnalisé pour une classe basée sur deux ensembles
- 13. Classe de corde basée sur des graphèmes?
- 14. C++ classe d'amis basée sur un modèle
- 15. Dans R, comment définir une classe S4 basée sur la classe d'un autre objet
- 16. Annonces dans une page Web basée sur PHP
- 17. changement classe CSS basée sur l'existence
- 18. mise en œuvre de classe NHibernate basée sur la valeur
- 19. Définition d'une variable basée sur la classe CSS dans jQuery
- 20. Test de la classe DataAccess basée sur le service WCF
- 21. Aller à la page basée sur deux sélections de menu
- 22. Commande/variable JavaScript basée sur la page Web Domaine/Site
- 23. Convertir une valeur basée sur la gamme
- 24. supprimer une ligne basée sur la logique
- 25. Comment appliquer la hauteur du navigateur à une classe CSS?
- 26. Comment faire une application basée sur la navigation de l'application basée sur la vue dans l'ipad?
- 27. Comment une application basée sur la navigation peut-elle accéder à la classe UINavigationController?
- 28. Appliquer CSS basée sur la longueur du texte de <a href="">
- 29. ASP .NET Authentification basée sur les rôles vs restrictions d'accès par page (classe de pages)
- 30. override sur une css classe
Vous devriez peut-être faire côté serveur – Marko
Je suis d'accord. Ecrivez un côté de serveur de classe CSS dans le balisage. Ensuite, tous les états de page peuvent être exprimés en CSS et aucun JS n'est nécessaire pour définir le style de page sélectionné. –