• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

jQuery addClass abhängig von URL hash

AzRaIL

Mitglied
Moin,

Ich möchte meinen Links eine Klasse vergeben abhängig von dem hash der in der URL steht.

Also zb.
root.de/aufgaben#1

dann sollte der Link mit der Adresse #1 eine Klasse zugewiesen kriegen
<a href="#1" class="active">Anker1</a>

Habe schon einige Ansätze, und im Kopf klappt auch alles. Nur bei der Umsetzung hakts ein wenig.

Ansatz1:
Code:
var loc = location.hash;
$('.menu a').each(function() {
        if ($(".menu a").attr('href', loc)) {
            $(this).addClass('active');
        }
        else {
            $(this).removeClass('active');
        }
});

Ansatz2:
Code:
var loc = location.hash;
$('.menu a').each(function() {
        if ($(".menu a[href]") == loc) {
            $(this).addClass('active');
        }
        else {
            $(this).removeClass('active');
        }
});

Ich komme nicht so ganz dahinter wie ich abfragen soll ob das href der Links mit dem location.hash übereinstimmt.

lg
 
Werbung:
Der erste Ansatz wird nicht hinkommen, weil attr() mit zwei Werten ein Attribut zuweist, für den zweiten Ansatz würde ich mir mal anschauen, was console.log() so ausgibt. Aber eigentlich ist die if-Abfrage hier gar nicht notwendig, auch wenn das bei einem größeren Script natürlich performanter wäre.

1. Schritt: Entferne sämtliche .active von den Listelementen
2. Schritt: Lies den Hash aus der URL und weise dem entsprechenden Listelement für Klasse .active zu

Die Logik dazu hatte ich dir vor ein paar Tagen geschrieben:
Code:
$('[href="' + hierMussEtwasRein + '"]').addClass("active");
 
Werbung:
Zurück
Oben