Drugie urodziny jQuery

Dzisiaj świętujemy drugie urodziny jQuery. Z tej okazji wydana została nowa wersja biblioteki, oznaczona numerem 1.2.2. Wersja ta wnosi kilka zmian, które mają przyspieszyć działanie jQuery.
Pierwsza ze zmian dotyczy sytuacji, gdy jako pierwszy argument funkcji jQuery przekażemy element DOM. Zminimalizowano po prostu operacje do minimum. Element DOM zostaje od razu opatrzony w obiekt jQuery i zwrócony do dalszej obróbki przez skrypty. Dopiero potem są sprawdzane pozostałe kombinacje atrybutów.
Kolejna zmiana dotyczy "zdarzenia"/metody ready. W Internet Explorerze została ona znacznie zmieniona. Zrezygnowano z sztuczki z document.write na korzyść rozwiązania zaproponowanego przez Diego Periniego, wykorzystującego pewną informację zawartą w dokumentacji behaviorów w IE dotyczącą m.in. metody doScroll.
Na dodatek wszystkie przeglądarki przy zdarzeniu ready czekają aż załaduje się drzewo DOM oraz arkusze stylów, co ułatwia nieco pracę skryptom zależnych od pewnych wartości arkusza stylów strony.
Do biblioteki dodano także obsługę nowych zdarzeń (m.in. mouseenter, mouseleave, mousewheel) oraz kompletnie przebudowano API dla zdarzeń, które zezwala na tworzenie nowych, własnych typów zdarzeń i manipulację nimi.
Zwijane panele
Ja z tej okazji postanowiłem uaktualnić jeden ze swoich skryptów. Co nowego w tej wersji:
- Cały skrypt został opatrzony funkcją jQuery.sliding. Dzięki temu można zdefiniować sobie wiele zestawów paneli, których ustawienia będą przechowywane z oddzielnych ciasteczkach
- Już nie jesteśmy zależni od pewnej struktury dokumentu. Funkcja jQuery.sliding oczekuje m.in. podania ID elementów, których skrypt będzie dotyczył
- Dodałem wyrażenie regularne sprawdzające, czy String zapisany w ciasteczku ma poprawną składnię JSON. Z tym, że wyrażenie ogranicza się tylko do składni wykorzystywanej przez ten skrypt, czyli
{"klucz":1,'klucz':0}(nazwy kluczy w cudzysłowach lub apostrofach i wartości 0 lub 1) - Funkcje fromJSON i toJSON zostały przemianowane na json2str i str2json
Funkcja jQuery.sliding oczekuje jednego argumentu - obiektu o następującej składni:
{
tabs:{'id_naglowka':'id_zwijanej_tresci','id_innego_naglowka':'id_innej_tresci'},
visible:{'id_naglowka':1,'id_innego_naglowka':0}, // 1 - treść widoczna, 0 - treść zwinięta
cookie:'tabs' // nazwa ciasteczka (opcjonalny)
}
Skrypt w akcji można zobaczyć na testowej stronie. Źródła do pobrania znajdują się tutaj


Subskrybuj