2016-03-22 13 views
1

Ich habe einen Code für Menü, das href von Menüelement und URL vergleicht und Klasse aktiv gibt, wenn Vergleich wahr ist.Menü nicht absolut href Vergleich mit Standort href Ausgabe

-Code

$(".gallery-navigation-container ul li a").each(function() { 
    if ($(this).attr("href") == location.href) { 
     $(this).addClass("active"); 
     $(this).parent().addClass("active-el"); 
    } 
}); 

Auf einer anderen Seite habe ich ein Problem, Link im Menüpunkt wie http nicht absolut //: und so weiter, ist es einfach wie /about/ und vergleichen falsch ist.

Frage: Wie man es vergleicht, um aktive Klasse zum aktiven Element zu erhalten?

UPDATE

Try

jQuery(document).ready(function($){ 
     var url = window.location.href; 
     $('.navigation a').filter(function() { 
      return this.href == url; 
     }).addClass('better-active'); 
    }); 

Keine Fehler zu verwenden, aber kein Ergebnis ... keine Klasse hinzugefügt. Es löscht href in Verbindung, wenn es aktuelle Seite ist ... haha ​​

aktualisieren 2

jQuery(document).ready(function($){ 
     var url = window.location.href; 
     $('.navigation ul li a').each(function() { 
     return $(this).attr("href") == url; 
     }).addClass('better-active'); 
    }); 

Es funktioniert, aber die aktuellen Artikel href löschen und jedes Element Klasse bekommen ... ist es eine Möglichkeit, repariere es? Filterfunktion gibt nichts

Antwort

0

Sie können versuchen, location.pathname statt href

var path = window.location.pathname; 
path = path.replace(/\/$/, ""); 
path = decodeURIComponent(path); 

$(".gallery-navigation-container ul li a").each(function() { 
    if ($(this).attr("href") === path.substring(0, $(this).attr("href").length)) { 
     $(this).addClass("active"); 
     $(this).parent().addClass("active-el"); 
    } 
}); 

Prüfung mit diesem example für die ähnlichen Implementierungsdetails

+0

Kann nicht Eigenschaft ‚Länge‘ undefinierter –

+0

lesen Haben Sie nach meiner bearbeiten versuchen? $ (this) .attr ("href"). Länge ..? – ssilas777

+0

yep, ich versuche, aber nichts ändert sich –