2009-11-01 6 views
1

Ci-dessous j'ai inclus le code jquery que j'utilise pour essayer d'ajouter une classe css au lien dans la colonne latérale qui est égale à l'URL active, mais cela ne fonctionne pas, et à un moment donné. Merci d'avance pour toute aide que vous pouvez fournir.Ajout de classes CSS en utilisant JQuery

Lien: http://www.liquidcomma.com/portfolio/project/TSF_Robot_Ad/1/

<script type="text/javascript"> 
$(document).ready(function(){ 
     $("ul.right_submenu > li > a").each(function() { 
      if ($(this).attr("href") == location.href) 
      { 
        $(this).addClass("CurrentProject"); 
      }); 
}; 
</script> 
+0

Je pense que la question est ici: $ (this) .attr ("href") == location.href - l'un des urls peut être normalisé/résolu – amartynov

Répondre

0

Vous avez des accolades non fermées dans votre script:

$(document).ready(function(){ 
    $("ul.right_submenu > li > a").each(function() { 
     var a = $(this); 
     if (a.attr('href') == location.href) { 
      a.addClass("CurrentProject"); 
     } 
    }); 
}); 

et vous pouvez réécrire votre script comme ceci:

$('ul.right_submenu > li > a[href=' + location.href + ']') 
    .addClass('CurrentProject'); 
+0

Salut, Si vous allez à liquidcomma.com et vous voir la section Études de cas J'ai essayé le code plus court que vous avez fourni comme solution alternative, mais rien ne semble se produire. C'est étrange puisque les deux exemples que vous avez fournis semblent être parfaits. – jsuissa

5

Eh bien, en plus de ce code accolades manquantes et parens il peut être fait beaucoup plus simple:

$(function(){ 
    $("a[href^='" + location.href + "']").addClass("CurrentProject"); 
}); 
+0

J'ai fait un changement pour répondre à l'inquiétude de Miguel, le '^ =' dans le sélecteur ne correspondra maintenant qu'à celui de href qui commence-avec l'URL de l'emplacement actuel. – joshperry

+0

Échange^= avec $ = .. Commence par et se termine respectivement. – Aaron

0

Après votre lien, mon location.href va à http://www.liquidcomma.com/portfolio/project/TSF_Robot_Ad/1/ mais votre lien de projet dans les points de page pour http://www.liquidcomma.com/portfolio/project/trade_show_fabrications/1 ... qui fera attr('href') != location.href.

Dans les autres liens, location.href se terminera par une barre oblique alors que le lien href ne le fera pas.

Vous devez utiliser autre chose pour correspondre à votre projet autre que l'attribut href, si vous pensez qu'il va changer dans le futur (et il le fera probablement).