Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Problem z zakładkami jquery, nie chowają się
Szymon80
post
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.
Go to the top of the page
+Quote Post
Fifi209
post
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.
Go to the top of the page
+Quote Post
Szymon80
post
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.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 09:25