![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 376 Pomógł: 47 Dołączył: 23.08.2007 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Witam, mam taki kod
To jest uproszczony kod, bo w oryginale wystepuje wiecej zagniezdzen. Ale jest ogolnie taka konwencja. Zwrocce uwage na klase active. Jesli dodamy taka klase, to zakladka staje sie zaznaczona, a jej tresc pokazana. Usuwamy klase - wszystko pozamykane. Smiga dobrze. Ale mam problem: gdy przelacze zakladke i odswieze strone, oczywiscia wszystko wraca do punktu wyjscia. Jedynym rozwiazaniem jest zapamietanie, ktora zakladka ma klase active. Najlepsze rozwiazanie to chyba index, np.
Ale... jak potem nadac klase "active" elementowi, ktory zostal zapamietany w cookie jako index? Z tego co widze, indexowanie idzie w glab: tzn. - tab 1 ma index 0 - tab 2 ma index 1 - tab 3 ma index 2 - tab 4 ma natomiast index 6, bo wewnatrz 3. sa 3 zakladki (indexowane od 3 do 5) Problem jest jeszcze taki, ze ktoras zakladka moze zostac zamknieta, wtedy obiekt jest NISZCZONY. Nie wchodzi w gre ukrywanie. Zakladki moga byc tez tworzone przez JQ. Wtedy struktura indexow zmienia sie. Jakie proponujecie rozwiazania? Ten post edytował Kaloryfer 4.11.2011, 11:35:27 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 307 Pomógł: 37 Dołączył: 9.11.2010 Skąd: Zielona Góra Ostrzeżenie: (0%) ![]() ![]() |
No ale chyba czegoś tutaj nie rozumiem, Tworząć drzewo tych zakładek zawsze robisz to w taki sam sposób, rozumiem nie ubywa ci w między czasie żadnych zakładek. W takim razie poprostu zapisz index tego elementu. I nie ma tutaj znaczenia czy ma ona index równy 3,4 czy 67429. Poprostu pokazujesz zakładkę o takim samym indexie jaki masz w ciastku.
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 376 Pomógł: 47 Dołączył: 23.08.2007 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Cytat Problem jest jeszcze taki, ze ktoras zakladka moze zostac zamknieta, wtedy obiekt jest NISZCZONY Cytat rozumiem nie ubywa ci w między czasie żadnych zakładek Ja tez czegos tu nie rozumiem... napisalem, ze zakladki moga byc zamykane... |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 307 Pomógł: 37 Dołączył: 9.11.2010 Skąd: Zielona Góra Ostrzeżenie: (0%) ![]() ![]() |
No to jest tym prostsze, każdej ustawiasz unikalne ID i je przekazujesz. Skoro cokolwiek znika w 'międzyczasie' no to nie możesz polegać na indexach. Gdzie przechowujesz nazwy tych zakłądek ? W bazie danych czy statycznie w pliku ? W bazie jest całkiem łatwo bo wystarczy dodać nowe pole ID.
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 376 Pomógł: 47 Dołączył: 23.08.2007 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
W zasadzie przechowywac BEDE w bazie danych... dobra, to kazda ma ID, a jak technicznie w jQuery nadac odpowiedniej zakladce klase active? Poza tym tutaj bedzie potrzebnych kilka ciastek, bo bedzie troche zagniezdzen, ale OK, to sie zrobi. Ale juz mi sporo rozjasniles, dzieki.
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 307 Pomógł: 37 Dołączył: 9.11.2010 Skąd: Zielona Góra Ostrzeżenie: (0%) ![]() ![]() |
Na przykład tak:
A najlepiej tak w pętli (kod pisany z palca, pewnie są błędy):
Tutaj tylko musisz pamietać o 3 sprawach: 1)Nie każdy musi mieć włączone ciastka w takim przypadku może lepiej trzymać te dane w sesji (nie powinno to obciążyć serwera) lub przynajmniej napisać to tak aby bez ciastek istniała także możliwość użytkowania serwisu. 2)Co do dużej ilości ciastek i zagnieżdzeń, choć nie przepadam za tą metodą to polece ci chyba jednak zrobienie serialize/json na tablicy z tymi numerami ID i zapisanie tego do jednego ciastka, wygląda to dużo lepiej niż dziesiątki pojedyńczych mniejszych ciastek. Ten post edytował Uriziel01 9.11.2011, 12:55:10 |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 376 Pomógł: 47 Dołączył: 23.08.2007 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Dzieki wielkie, juz wiem jak dzialac. Nie wiedzialem po prostu, w ktora strone to ugryzc, a okazalo sie prostsze niz myslalem. Jesli chodzi o JSON, to jest to dobry pomysl jak dla mnie
![]() Co do uzytkowania serwisu... ma on dzialac na lokalu na specyficznych komputerach, wiec nie ma mowy o czyms takim, by ktos sobie wylaczyl ciastka, tym bardziej JS ![]() |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 11:07 |