Ich versuche, die 'aktive' Klasse der aktuellen Seite Nav Link in der Kopfzeile hinzuzufügen. Ich habe Fortschritte gemacht, aber ich stoße auf einen kleinen Käfer und würde mich über Hilfe freuen. Ich weiß, dass die Antwort ziemlich offensichtlich ist, aber ich bin neu in jQuery/Javascript und ich habe Probleme, es alleine zu finden.Hinzufügen der aktiven Klasse zur aktuellen Seite in Nav mit jQuery
Hier ist meine nav HTML-Struktur:
<nav class="navbar navbar-expand-lg navbar-dark fixed-top" id="nav">
<ul class="navbar-nav ml-auto">
<li class="nav-item">
<a href="/" class="nav-link">Me</a>
</li>
<li class="nav-item">
<a class="nav-link" href="/work">Work</a>
</li>
<li class="nav-item">
<a class="nav-link" href="/play">Play</a>
</li>
<li class="nav-item">
<a class="nav-link" href="/contact">Contact</a>
</li>
</ul>
</nav>
Einfach genug. Hier ist der jQuery-Code:
$(function() {
$('nav li a[href^="/' + location.pathname.split("/")[1] + '"]').addClass('active');
});
Der Code funktioniert auf inneren Seiten, aber ich bin in ein Problem laufen, wobei auf der Homepage (‚Me‘, href = „/“), wird der Code der Zugabe aktive Klasse für alle Nav-Links.
Ich denke, das Problem wäre gelöst, wenn ich href = "/ work /" (fügte ein/bis zum Ende aller Links), aber wenn ich das tun, funktionieren die Links nicht mehr, weil die Website dann versucht, zu www.sitename.com/work/.php zu gehen.
Dies ist entweder eine einfache .htaccess oder jQuery-Fix, aber ich bin mir nicht sicher, welche, oder wie Sie es implementieren.
Danke!
Was verwenden Sie für Ihr Backend? Es könnte einfacher sein, die Klasse beim Laden der Seite aus dem Backend hinzuzufügen. –
Nicht sicher, warum Sie dachten, dies könnte ein '.htaccess' Fix sein? – MrWhite