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 ;-)