Poczytaj o nowosciach w Atreo, a takze o ciekawostkach z branzy.

Poczytaj o nowosciach w Atreo, a takze o ciekawostkach z branzy.

Jesteś klientem? Jeśli masz chwilę czasu poczytaj o nowościach w firmie. Dajemy się poznać każdemu. Nie zamykamy się na klientów, wręcz przeciwnie.

Jesteś z branży? Zobacz wpisy technologiczne. Może znajdziesz rozwiązanie swojego problemu. Usługi które świadczymy, to nasza pasja. Dzielimy się wiedzą za darmo.

Aktywne menu javascript.

23-09-2011 22:51:54
a

Niepotrzebny Ci PHP, jedyne czego potrzebujesz to biblioteka jQuery, oraz krótki tylko kilku linijkowy kod. Oczywiście, jeśli nie wykorzystujesz na swojej stronie biblioteki jQuery nie warto obciążać strony całą biblioteką dla paru linijek. Jednak praktycznie, jQuery znajduje zastosowanie nawet w najmniejszych projektach, z czego skorzystamy tworząc nasze menu w oparciu o tę że bibliotekę. Aktywne menu w JavaScript jak widzisz to nic trudnego.

 

Oto nasz kod:

$(document).ready(function() {
  var path = location.pathname;
  var home = "/";
  $("a[href='" + [ path ] + "']").parents("li").each(function() {
    $(this).addClass("selected");
  });
});

A to przykładowe zastosowanie (pamiętaj aby dodać bibliotekę jQuery):

<!DOCTYPE html>
<html lang="pl">
<head>
    <meta charset="utf-8" />
    <title>Demo aktywne menu javascript</title>
    <link href="default.css" media="screen" rel="stylesheet" type="text/css" />
    <script type="text/javascript" src="http://code.jquery.com/jquery-1.6.4.min.js"></script>
    <script type="text/javascript">
	$(document).ready(function() {
	  var path = location.pathname;
	  var home = "/";
	  $("a[href='" + [ path ] + "']").parents("li").each(function() {
		$(this).addClass("selected");
	  });
	});
     </script>
</head>
<body>
<ul>
    <li>
        <a href="/index.html">0</a>
    </li>
    <li>
       <a href="/index1.html">1</a>
    </li>
    <li>
       <a href="/index2.html">2</a>
    </li>
</ul>
</body>
</html>

Demo można obejrzeć poruszając się po naszym menu, do znacznika </li> dopisywana jest klasa "selected" jeżeli jesteśmy na danej podstronie. To jak ma wyglądać nasz aktywny link określamy w pliku default.css, który importujemy tak jak powyżej. Na przykład, jeżeli link aktywny ma mieć czarne tło to:

.selected {
   background: #000;
}
Komentarze
  • adikos adikos

    10-10-2011 15:54:49 | Odpowiedz

    W końcu jakis dzialajacy sposob i to w jquery, tego szukalem. Wielki dzieki!

  • tomiboy tomiboy

    15-12-2011 15:49:57 | Odpowiedz

    Z początku nie działało, ale przez mój błąd. Szkoda, że nie ma od razu konkretnego dema, żeby zobaczyć jak działa.

  • suexefultable suexefultable

    10-05-2012 18:11:27 | Odpowiedz

    Obedient bye, genial alternative other :)

Napisz komentarz