2009-12-03 8 views
1

J'utilise les mêmes js que celui répondu à cette question: https://stackoverflow.com/questions/302955/active....navigation ajouter un lien actif dans Jquery

mon problème est, au lieu d'ajouter la classe à un lien par défaut je voudrais ajouter la classe un lien avec le même répertoire.

exemple: Page2 se trouve dans un répertoire différent. un lien, en dehors de la navigation, est cliqué sur cette page. quand vous allez à la page suivante, comment puis-je garder cette classe active sur le lien Page2?

Voici le nav

<div id="nav"> 
       <ul> 
       <li><a href="index.html">Home</a></li> 
       <li><a href="test/index.html">Page2</a></li> 
       <li><a href="test2/index.html">Page3</a></li> 
</ul> 
</div> 

Ci-dessous mon jquery. la première partie fonctionne parfaitement la deuxième partie est où j'ai des problèmes:

function markActiveLink() {var currentURL = window.location.toString().split("/"); 
$("#nav li a").filter(function() { 
//alert(currentURL); 
    return $(this).attr("href") == currentURL[currentURL.length-1]; 
    }).parent().addClass("current"); 
if($("#nav li").hasClass("current") == false) { 
    alert(currentURL[currentURL.length-2]); 

    } 
} 

markActiveLink(); 

Merci d'avance!

Répondre

0

Cela devrait fonctionner. Prend en compte tout le chemin non seulement la dernière partie de celui-ci.

function markActiveLink() { 
    var path = location.pathname.substring(1); 
    $('#nav li a[href="' + path + '"]').parent().addClass("current"); 
    if($("#nav li").hasClass("current") == false) { 
     //whatever e.g. select default 
     $('#nav li').eq(0).addClass("current"); 
    } 
} 

markActiveLink(); 
+0

Salut jitter, qui ne fonctionnait pas. ça a juste gardé la classe sur le premier élément. – cadenage

+0

en êtes-vous sûr? J'ai enlevé un '$' du premier sélecteur peu après l'envoi. Peut construire un 'alert (path)' et afficher dans un commentaire quelques valeurs pour cela – jitter

+0

Alors? Des progrès à ce sujet? Pouvez-vous fournir des exemples de valeurs à quel chemin évalue? – jitter

Questions connexes