J'utilise actuellement un script, qui ajoute une classe active aux liens dans la navigation. Cela fonctionne très bien pour la plupart des pages et compare le href avec l'URL.Ajouter la classe .active à la navigation lorsque vous êtes sur la page correspondante
Le seul problème que je rencontre est lorsque l'utilisateur atterrit sur le domaine et lorsque l'utilisateur clique sur le lien vers la page d'accueil. Le lien vers la page d'accueil va à: ../
donc il n'y a rien à comparer pour le script lorsque vous êtes sur la page d'accueil.
Le script fonctionne pour tous les autres liens, c'est-à-dire ../contact
et ../blog/
, car le script peut comparer le href à l'URL.
Je pensais à comparer un identifiant du lien, mais je n'ai pas pu le faire fonctionner malheureusement. Voici le script que j'utilise actuellement, qui doit probablement être modifié.
$(function(){
var url = window.location.pathname,
urlRegExp = new RegExp(url.replace(/\/$/,'') + "$");
$('.nav-order a').each(function(){
if(urlRegExp.test(this.href.replace(/\/$/,''))){
$(this).addClass('current');
}
});
});
Merci pour l'aide!
Toute raison pour laquelle vous utilisez une expression régulière? (il me semble que si vous utilisiez l'opérateur égal, il correspondrait comme prévu) –
lorsque vous savez que c'est la page d'accueil, vous n'avez probablement pas besoin d'une regex. vous pouvez simplement coder cette partie. – joym8
Je dois admettre que je n'ai jamais fait ça auparavant. Pour être honnête, j'ai trouvé ce script en ligne et j'ai pensé que cela correspondrait à mes besoins. Malheureusement, je ne sais pas grand chose sur jquery. –