![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 82 Pomógł: 1 Dołączył: 6.06.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Mam mały problem z zakładkami z tej strony http://jqueryfordesigners.com/jquery-tabs/ Bardzo fanjny i prosty skrypt jquery, ale ma małą wadę. Po przełądowaniu strony nie zapamiętywało na której zakładce była ustawiona strona. Ale znalazłem w komentarzach wersję która taką funkcję posiada: Kod $(function () { var tabContainers = []; $('ul.tabs a').each(function () { // note that this only compares the pathname, not the entire url // which actually may be required for a more terse solution. if (this.pathname == window.location.pathname) { tabs.push(this); tabContainers.push($(this.hash).get(0)); } }); // sniff for hash in url, and create filter search var selected = window.location.hash ? '[hash=' + window.location.hash + ']' : ':first'; tabs.click(function () { // hide all tabs tabContainers.hide().filter(this.hash).show(); // set up the selected class $(tabs).removeClass('selected'); $(this).addClass('selected'); return false; }).filter(selected).click(); }); Nie wiem dlaczego, ale teraz zakładki nie chcą się chować jedna pod drugą. Poniżej podaje linki do skryptu orginalnego (tabs1) i z modyfikacją (tabs2) Tabs1 http://dobry-katalog.cba.pl/x/tabs1.html Tabs2 http://dobry-katalog.cba.pl/x/tabs2.html Jak ktoś ma pomysł jak to naprawić to będę wdzięczny. Ja walcze z tym już kilka ładnych godzin i nie wpadłem na rozwiązanie. A poniewąż js i jquery nie znam za bardzo to błądzę jak ślepy w ciemnościach. Proszę o podpowiedz. |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
Jedyna rada na zapamiętanie to:
1) Cookie 2) Sesja 1. Cookie - zapisujesz do cookie i później odczytujesz i ustawiasz na daną zakładkę 2. Sesja - przy zmianie zakładki, przez ajax'a wysyłasz żądanie, które do sesji zapisze, którą zakładkę aktualnie przeglądasz. Po odświeżeniu strony, wyślesz żądanie do serwera, który w odpowiedzi wyciągnie dane sesji i zwróci dany identyfikator zakładki. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 82 Pomógł: 1 Dołączył: 6.06.2009 Ostrzeżenie: (0%) ![]() ![]() |
No własnie kolega z innego forum coś takiego skonstruował. Ma to swoje zalety ale i też wady.
Kod wygląda tak Kod $(function () { if ( $.cookie("tab") != 'undefined' ) { zaznacz = $.cookie("tab"); $("a[href='"+ zaznacz +"']").addClass('selected'); } else zaznacz = ':first'; var tabContainers = $('div.tabs > div'); tabContainers.hide().filter(zaznacz).show(); $('div.tabs ul.tabNavigation a').click(function () { tabContainers.hide(); tabContainers.filter(this.hash).show(); $.cookie("tab", this.hash); $('div.tabs ul.tabNavigation a').removeClass('selected'); $(this).addClass('selected'); return false; }).filter(zaznacz).click(); $(zaznacz).addClass('selected'); }); Jednak jest jeden problem, przy pierwszej wizycie, zanim kliknę na którąkolwiek zakładkę nie pojawia się żadna z zakładek. Przykład http://dobry-katalog.cba.pl/x/tabs3.html Jak wiecie jak to naprawić to będę wdzięczny. Poza tym z cookie jest jeszcze jeden mały problem. Nie można skierować kogoś bezpośrednio do danej zakładki poprzez link. W pierszym przypadku da sie tak zrobić bez problemów. Więc wolałbym właśnie to pierwsze rozwiązanie zastosować. Pozdrawiam. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 09:25 |