2016-05-17 7 views
1

ich diesen CodeWenn auf der Homepage, ganz meine Navigation hervorgehoben wird

$(document).ready(function() { 
$(function() { 
    $('li a[href^="../../' + location.pathname.split("/")[1] + '"]').addClass('active'); 
    }); 
}); 

meiner Navigation zu markieren, je nachdem, welche Seite Ich bin bin mit.

Es funktioniert gut und zeigt nur einen Link von der Navigation, wenn ich zum Beispiel bin http://test.com/content, aber wenn ich auf der Startseite erhalten aka http://test.com/ Sie zeigt alle von der li von Navigations auf einmal ..

Versuchte es in jsfiddle reproduzieren ... bekam aber nicht dazu führen, es würde Sie dann auf eine andere Seite umleiten oder die Seite sagen nicht

gibt es etwas, was ich nicht tun kann, existiert?

+0

Eine gute Lösung für dieses Problem könnte sein, Klassen auf der lis im Gegensatz zu ihren hrefs zu verwenden. – MCMXCII

+1

Sie benötigen nur 1 onReady-Ereignis. '$ (Document) .ready (function() {...});' ist die gleiche wie '$ (function() {...});' so entfernen die eine oder andere – johnniebenson

Antwort

1

Wie die „endet mit“ Operator $ = statt über die Verwendung von „beginnt mit“^=

Auf diese Weise können Sie einfach für alles nach dem Domain-Namen überprüfen konnten. ausschließen nur den Pfad, der nur die Domäne enthält unter Verwendung einer „if“:

$(document).ready(function() { 
     if(location.pathname != "/") { 
      $('li a[href$="' + location.pathname+ '"]').addClass('active'); 
     } 
}); 

auch einen Blick auf diese beiden Posten haben:

Select <a> which href ends with some string

http://www.w3schools.com/jsref/prop_loc_pathname.asp

+0

Eigentlich könnten Sie Ihr Beispiel verwenden zu und umgebe es mit einem wenn das den case location ausschließt.Pfadname verweist direkt auf deine Domain - habe vorher nicht darüber nachgedacht ... – Fuzzzzel

+0

Hmm, interessante Idee. Tho jetzt ist es nicht sogar Klasse irgendwo aus irgendeinem Grund hinzufügen D: – Harugawa

+0

ok, ich reparierte es, indem Sie nur ein $ Sie vorgeschlagen, um meine vorherige Code: D – Harugawa

Verwandte Themen