Quantcast
Viewing all articles
Browse latest Browse all 21942

jQuery - Tabs

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.


Viewing all articles
Browse latest Browse all 21942