Witam wszystkich,
Próbuje zrobić proste zakładki i chciałbym trzymać się wytycznych W3C oraz zasady czystego kodu. Zakładki mają być banalne. W pozycji horyzontalnej mają być np. 3 zakładki, które po kliknięciu pokaż mi zawartość poszczególnych zakładek, bez konieczności przeładowania całej strony i dołączania kolejnych plików html.
Na czym polega problem. Otóż mam 3 warianty.
Wariant najbardziej pożądany (nie działa):
http://kursjs.pl/kurs/jquery/tabs.php
Zakładki pojawiają się ale po kliknięciu nic się nie dzieje. Problem leży chyba w dołączonych bibliotek ale nie udało mi się odnaleźć przyczynę.
Wariant 2 (działa ale poszczególne zakładki mają animowane najazdy a ja chce najzwyklejsze Show i Hide - modyfikacja kodu JS nie udała mi się):
<div id="tabbed_box_1" class="tabbed_box"><h1>Zakładki z jQuery<small>demo</small></h1><div class="tabbed_area"><ul class="tabs"><li><a href="#" title="content_1" class="tab active">Najnowsze</a></li><li><a href="#" title="content_2" class="tab">Kategorie</a></li><li><a href="#" title="content_3" class="tab">Archiwalne</a></li></ul><div id="content_1" class="content"><ul><li><a href="#">Anglia: Szczęsny szybko pokonany</a></li></ul></div><div id="content_2" class="content"><ul><li><a href="#">Sport<small>6 Postów</small></a></li></ul></div><div id="content_3" class="content"><ul><li><a href="#">Grudzień 2013<small>6 Postów</small></a></li></ul></div></div>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script><script> $(document).ready(function(){ // Klikniecie w klase tab $("a.tab").click(function () { // usuniecie klasy active $(".active").removeClass("active"); // dodanie klasy active do kliknietego taba $(this).addClass("active"); // rozwiniecie tresci $(".content").slideUp(); // dodanie atrybutu title do klikietego taba. var content_show = $(this).attr("title"); $("#"+content_show).slideDown(); }); }); </script>
.a{color:#333; font-weight:normal; font-size:12px; font-family:Verdana, Arial, Helvetica, sans-serif; text-transform:uppercase; position:relative; text-decoration:none; text-align:center; padding-top:10px; display:block;} .a:hover{text-decoration:underline;} #tabbed_box_1{ margin:0px auto 0px auto; width:300px; } .tabbed_box h1 { font-family:Arial, Helvetica, sans-serif; font-size:23px; color:#858585; letter-spacing:-1px; margin-bottom:10px; } .tabbed_box h1 small { color:#e3e9ec; font-weight:normal; font-size:9px; font-family:Verdana, Arial, Helvetica, sans-serif; text-transform:uppercase; position:relative; top:-4px; left:6px; letter-spacing:0px; } .tabbed_area { border:1px solid #494e52; background-color:#333; padding:8px; } ul.tabs { margin:0px; padding:0px; } ul.tabs li { list-style:none; display:inline; } ul.tabs li a { background-color:#eee; color:#333; padding:8px 11px 8px 12px; text-decoration:none; font-size:9px; font-family:Verdana, Arial, Helvetica, sans-serif; font-weight:bold; text-transform:uppercase; border:1px solid #464c54; } ul.tabs li a:hover { background-color:#eed; border-color:#2f343a; } ul.tabs li a.active { background-color:#eee; color:red; border-top:1px solid red; border:3px solid #eee; } .content { background-color:#ffffff; padding:10px; border:1px solid #eee; border-top:0; } #content_2, #content_3 { display:none; } ul.tabs { margin:0px; padding:0px; margin-top:5px; margin-bottom:6px; } .content ul { margin:0px; padding:0px 20px 0px 20px; } .content ul li { list-style:none; border-bottom:1px solid #d6dde0; padding-top:15px; padding-bottom:15px; font-size:13px; } .content ul li a { text-decoration:none; color:#333; font-family:Verdana, Arial, Helvetica, sans-serif; } .content ul li a:hover{ text-decoration:underline; } .content ul li a small { color:#8b959c; font-size:9px; text-transform:uppercase; font-family:Verdana, Arial, Helvetica, sans-serif; position:relative; left:4px; top:0px; } .content ul li:last-child { border-bottom:none; } ul.tabs li a { background:#999; } ul.tabs li a.active { background:#eee; } .content { background:#eee; }
Wariant 3 (działa nawet tak jak bym chciał ale został wygenerowany w generatorze i jest wielka biblią - na pewno da się to zrobić prościej i bardziej optymalnie niż ponad 100 linijek kodu).
Kodu nie wklejam, bo developer płakał jak sprawdzał.
Proszę o pomoc i z góry dziękuje za wszelkie wskazówki.