Zwijane panele w jQuery

Przez Riddle'a (a raczej dzięki niemu) zainteresowałem się nieco jQuery. Na początku podszedłem nieco scptycznie do "gotowca", bo wolę operować tylko swoim kodem, ale potem zapomniałem o uprzedzeniach i po prostu napisałem swój pierwszy skrypt.

Ogólny opis skryptu

Wyżej wymieniony skrypt możecie zobaczyć w akcji klikając na tym blogu po panelach "Archiwum", "Kategorie", itd. Zadaniem skryptu jest zwijanie i rozwijanie panelów i zapamiętywanie ustawien użytkownika w ciasteczku. Dla zainteresowanych skrypt ten udostępniam za darmo. Jedyne co wymagam to pozostawienie w nim notki autorskiej.

Obecnie skrypt wymaga odpowiedniej struktury, tutaj akurat korzystam ze znaczników <dt> i <dd>. Jak znajdę chwilkę czasu to przystosuje skrypt do różnych struktur dokumentu.

Instalacja na stronie i konfiguracja

Na początek pobieramy najnowsze wydanie jQuery i wstawiamy do strony. Następnie pobieramy plik skryptu i też wstawiamy go do strony, oczywiście za pomocą <script />. W pliku tym należy znaleźć linijkę

var tabs={archiwum:1,kategorie:1,meta:1,www:1}

Tutaj wpisujemy kolejne identyfikatory panelów (chodzi o element <dt>), do których chcemy przypisać skrypt. Wartość 1 oznacza, że panel będzie po starcie strony domyślnie widoczny, wartość 0, że panel będzie domyślnie ukryty. Wartości te są potem nadpisywane preferencjami użytkownika z ciasteczka. Skrypt później będzie szukał elementu <dd>, który jest spodziewany jako "brat" (selektor +). To wszystko odnośnie instalacji.

Kilka uwag

Jak już wspominałem, skrypt pisałem pod strukturę akurat tego bloga i w wolnym czasie go nieco zmodyfikuję, aby stał się bardziej uniwersalny.

Na stronie jQuery możemy znaleźć plugin $.cookie, ale na potrzeby tego skryptu napisałem własne funkcje $.cookie i $.setcookie. Uznałem łączenie zapisywania i odczytu cookie w jednej funkcji za niezbyt dobry pomysł (może się jeszcze przekonam ;-)). Funkcję $.setcookie będę jeszcze modyfikował, aby niemożliwe było zapisanie ciasteczka bez wartości (bo po co?) i dodam mozliwość dołączania pozostałych atrybutów ciasteczek (domain, secure, path).

W przyszłości zmianie ulegnie też funkcja $.toJSON, która będzie sprawdzać RegExem, czy wartość zapisana w Stringu jest poprawnym JSONem.

To tyle na temat skryptu. Życzę przyjemnego użytkowania i oczekiwania na nowe, poprawione wydanie ;-)


Kategorie: JavaScript 11 lutego 2007, 12:03:47 3 komentarze

Komentarze dla notki “Zwijane panele w jQuery”

  1. rkuku - 12 lutego 2007, 23:08:03

    Bardzo dobry pomysł z tymi rozsuwanymi panelami.

  2. Luke Mica - 18 maja 2007, 23:06:08

    próbowałem zmodyfikować Twój skrypt pod moje panele w Wordpressie.

    udało się, ale coś jest nie tak z ciasteczkami. opisałem to szczegółowo na swoim blogu – jeżeli znajdziesz odrobinę czasu i chęci to zapraszam do zapoznania się (link w podpisie).

  3. Devid - 20 maja 2007, 18:49:03

    Super sprawa tego właśnie szukałem ale mam problem. Robię nowy szablon na jogga i chciałbym wykorzystać ten skrypcik, jednak coś nie działa poprawnie.
    Problem podobny do Luke Mica ale postępując według jego wskazówek nie udało mi się rozwiązać problemu.
    Po odświeżeniu strony skrypt już nie działa i muszę usunąć cookies. Gdy działa po ich usunięciu klikając na daną kategorię aby ją zwinąć skrypt ją zwija i ponownie rozwija do poprzedniego stanu i dopiero podczas drugiego kliknięcia poprawnie zawija.

    Prosiłbym o rady :)

Pozostaw komentarz

Copyright © 2003-2011 Rafał Kukawski. Powered by Jogger | RSS Subskrybuj