2016-12-22 2 views
0

Ich verwende ein einfaches Skript zum Anwenden oder Entfernen von aktiven Zuständen in Kopf- und Fußzeilennavigationslinks basierend auf dem aktuellen Standort des Benutzers, aber heute habe ich bemerkt, dass es nicht mehr funktioniert. Die Konsole erzeugt keine Fehler und ich habe nichts geändert.window.location.Patchname funktioniert nicht mehr zum Hinzufügen/Entfernen von aktiven Zuständen

var current; 
current = window.location.pathname; 

$('ul#menu li#home-nav').addClass("active"); 

if(current.indexOf("index.php") >= 0){ 
    $('ul#menu li, ul#subnav li').removeClass("active"); 
    $('ul#menu li#home-nav, ul#subnav li#home-subnav').addClass("active"); 
} 

if(current.indexOf("services.php") >= 0){ 
    $('ul#menu li, ul#subnav li').removeClass("active"); 
    $('ul#menu li#services-nav, ul#subnav li#services-subnav').addClass("active"); 
} 

usw. Gibt es eine bessere/effizientere Möglichkeit, dies zu erreichen?

+0

Können Sie sicherstellen, dass die IDs und Elemente auch intakt sind? Ihr Code scheint korrekt zu sein. – 31piy

+0

@ 31piy IDs und Elemente sind alle intakt. – bcam7

Antwort

1

Versuchen Sie diese einfache Lösung.

var url = window.location.pathname; 
var urlFilename = url.substring(url.lastIndexOf('/')+1); 

if(urlFilename !== ''){ 
    $('ul#menu li, ul#subnav li').removeClass('active'); 
    $myElm = $('ul#subnav li a[href="' + urlFilename + '"]'); 
    if($myElm.length){ 
     $myElm.parent().addClass('active'); 
     $myElm.parent().parent().parent().addClass('active'); 
    } 
} 

Es wäre sehr hilfreich, wenn Sie das HTML auch teilen.

Danke.

Verwandte Themen