Spis treści
O autorach ........................................................................15 Wstöp ...............................................................................17 Dlaczego powstaäa ksiñĔka z recepturami i przykäadami na temat jQuery? ........................................................................17 Dla kogo jest przeznaczona ta ksiñĔka? ..........................................18 Jak korzystaè z tej ksiñĔki? ............................................................18 Struktura ksiñĔki ...........................................................................19 Zasoby dodatkowe ........................................................................19
CzöĈè I
Podstawy ...........................................................21
Rozdziaä 1. Rozpoczynanie pracy z jQuery .............................................23 Receptura: Przedstawienie podstawowego sposobu uĔycia jQuery .....23 Receptura: Stosowanie jQuery wraz z innymi bibliotekami .................26 Receptura: OkreĈlanie wersji biblioteki jQuery ..................................27 Receptura: Przeglñdanie tablic przy uĔyciu funkcji each() ..................28 Receptura: Operacje na tablicach przy uĔyciu funkcji map() ...............30 Receptura: Operowanie na tablicach elementów ..............................31 Receptura: OkreĈlanie poäoĔenia elementu przy uĔyciu funkcji index() .............................................................32 Receptura: Odnajdywanie elementów tablicy przy uĔyciu funkcji grep() ..............................................................33 Receptura: OkreĈlanie wielkoĈci zbioru elementów przy uĔyciu funkcji length() ...........................................................34 Receptura: Pobieranie atrybutów data- HTML5 .................................35 Receptura: Zapis danych przy uĔyciu funkcji data() ...........................36 Receptura: Usuwanie danych przy uĔyciu metody removeData() .........38 Receptura: Testowanie zmiennych i operowanie na nich ...................39 Receptura: Rozszerzanie obiektów przy uĔyciu funkcji extend() ..........41 Receptura: Serializacja danych z formularzy .....................................43 Receptura: Testowanie dostöpnych moĔliwoĈci przeglñdarki .............44 Podsumowanie .............................................................................46
8
jQuery, jQuery UI oraz jQuery Mobile. Receptury
Rozdziaä 2. Wybór elementów ..............................................................47 Receptura: ãñczenie dwóch zbiorów elementów przy uĔyciu funkcji add() ...............................................................47 Receptura: Precyzowanie zapytania przy uĔyciu funkcji filter() ............48 Receptura: Wybieranie elementów podrzödnych przy uĔyciu funkcji find() oraz children() .........................................49 Receptura: Wybór elementów za pomocñ funkcji has() oraz sprawdzanie ich przy uĔyciu funkcji is() ..................................51 Receptura: Wybieranie pól formularzy przy wykorzystaniu pseudoselektorów .......................................................................52 Receptura: ZagnieĔdĔanie selektorów .............................................53 Receptura: Emulacja selektora hover CSS .......................................54 Receptura: Wybieranie tekstu za pomocñ funkcji contains() ..............55 Przykäad: WyróĔnianie pojedynczego säowa ......................................56 Receptura: Tworzenie wäasnych selektorów .....................................57 Receptura: Ograniczanie zakresu kontekstu wyboru .........................59 Podsumowanie .............................................................................60
Rozdziaä 3. Modyfikowanie stron ..........................................................61 Receptura: Dodawanie klas ...........................................................61 Przykäad: Usuwanie klas ................................................................62 Receptura: Generacja nazw klas .....................................................63 Receptura: Zmiana wäaĈciwoĈci i atrybutów .....................................65 Receptura: Zmiana kodu HTML wewnñtrz elementu .........................66 Receptura: Dodawanie zawartoĈci przy uĔyciu funkcji append() oraz appendTo() ..........................................................................67 Przykäad: Dodawanie wyniku funkcji ................................................68 Receptura: Dodawanie treĈci przy uĔyciu funkcji prepend() oraz prependTo() .........................................................................70 Receptura: Dynamiczna generacja kodu HTML przy wykorzystaniu jQuery .............................................................71 Receptura: Doäñczanie i odäñczanie elementów ................................72 Receptura: Kopiowanie elementów przy uĔyciu funkcji clone() ...........73 Receptura: Wstawianie elementów w okreĈlonym miejscu ................75 Przykäad: Przesuwanie elementów w górö i w dóä listy .......................76 Receptura: Usuwanie elementów ....................................................78 Receptura: ZagnieĔdĔanie elementów i usuwanie elementów otaczajñcych ...............................................................................80 Podsumowanie .............................................................................83
Rozdziaä 4. Odbieranie zdarzeþ i odpowiadanie na nie ...........................85 Receptura: Obsäuga zdarzeþ zwiñzanych z myszñ .............................85 Przykäad: Rysowanie na elemencie canvas ......................................87 Receptura: Obsäuga zdarzeþ klawiatury ...........................................89 Receptura: Obsäuga zdarzeþ formularzy ...........................................90
Spis treĈci Receptura: Obsäuga zdarzeþ zwiñzanych z przewijaniem ...................92 Receptura: Dodawanie gäównych procedur obsäugi zdarzeþ przy uĔyciu funkcji live() oraz die() .................................................93 Receptura: Przekazywanie zdarzeþ do konkretnego elementu nadrzödnego przy uĔyciu funkcji delegate() ....................................95 Receptura: Zmiana kontekstu wykonania funkcji przy uĔyciu funkcji proxy() .............................................................98 Podsumowanie .............................................................................99
Rozdziaä 5. Komunikacja z serwerem ..................................................101 Receptura: Przygotowanie testowego serwera z uĔyciem Node.js .....101 Receptura: Generacja Ĕñdania GET ...............................................103 Receptura: BezpoĈrednie wczytywanie kodu HTML .......................104 Receptura: Obsäuga Ĕñdaþ przy uĔyciu obietnic ..............................105 Receptura: Obsäuga bäödów serwera .............................................107 Receptura: Obsäuga problemów z odnalezieniem strony ..................108 Receptura: Obsäuga przekierowaþ .................................................110 Receptura: OkreĈlanie czasu oczekiwania na odpowiedĒ ................111 Receptura: Przekazywanie nagäówków HTTP ..................................112 Przykäad: Weryfikacja danych z formularza po stronie serwera .........113 Receptura: Wczytywanie kodu XML ...............................................115 Receptura: Obsäuga zdarzeþ AJAX .................................................116 Receptura: Czytanie danych JSONP z zewnötrznego serwera ...........117 Podsumowanie ...........................................................................119
CzöĈè II
Interfejs uĔytkownika .......................................121
Rozdziaä 6. Interakcja z uĔytkownikiem ..............................................123 Pobieranie i instalacja jQuery UI ...................................................123 Receptura: Przeciñganie elementów .............................................124 OkreĈlanie postaci komponentów draggable ............................125 OkreĈlanie opcji komponentów draggable ................................126 Obsäuga zdarzeþ komponentów draggable ................................129 Wywoäywanie metod komponentów draggable ...........................130 Receptura: Upuszczanie elementów ..............................................130 OkreĈlanie stylu komponentów droppable ................................132 OkreĈlanie opcji komponentów droppable ................................132 Przechwytywanie zdarzeþ komponentów droppable ...................132 Wywoäywanie metod komponentów droppable ..........................134 Receptura: Zmiana kolejnoĈci elementów przy wykorzystaniu elementów sortowalnych ................................135 OkreĈlanie stylów elementów sortowalnych ..............................136 OkreĈlanie opcji elementów sortowalnych ................................136 Obsäuga zdarzeþ elementów sortowalnych ...............................136 Wywoäywanie metod elementów sortowalnych ..........................140
9
10
jQuery, jQuery UI oraz jQuery Mobile. Receptury Przykäad: Sortowanie elementów tworzñcych strukturö drzewiastñ ...141 Receptura: Zaznaczanie elementów listy wypunktowanej ................142 Style komponentów selectable ................................................144 OkreĈlanie opcji komponentów selectable ................................144 Obsäuga zdarzeþ komponentów selectable ...............................144 Wywoäywanie metod komponentów selectable ..........................146 Przykäad: Zaznaczanie elementów w strukturze drzewiastej .............146 Receptura: Zmiana wielkoĈci elementów .......................................148 OkreĈlanie wyglñdu elementów o zmiennej wielkoĈci ................149 OkreĈlanie opcji elementów o zmiennej wielkoĈci .....................149 Obsäuga zdarzeþ elementów o zmiennej wielkoĈci ....................150 Wywoäywanie metod elementów o zmiennej wielkoĈci ...............151 Podsumowanie ...........................................................................152
Rozdziaä 7. Interakcja z widĔetami .....................................................153 Receptura: Grupowanie treĈci przy uĔyciu akordeonu ......................153 OkreĈlanie wyglñdu akordeonu ................................................154 OkreĈlanie opcji akordeonu ....................................................155 Obsäuga zdarzeþ akordeonu ....................................................157 Metody .................................................................................158 Receptura: Sugerowanie wartoĈci przy uĔyciu widĔetu automatycznego uzupeäniania ........................159 OkreĈlanie wyglñdu widĔetu automatycznego uzupeäniania ........161 OkreĈlanie opcji widĔetu automatycznego uzupeäniania .............161 Obsäuga zdarzeþ widĔetu automatycznego uzupeäniania .............161 Wywoäywanie metod widĔetu automatycznego uzupeäniania .......164 Receptura: Przeksztaäcanie elementów w przyciski .........................165 OkreĈlanie wyglñdu przycisków ................................................166 OkreĈlanie opcji przycisków ....................................................167 Obsäuga zdarzeþ przycisków ....................................................167 Metody .................................................................................168 Przykäad: OkreĈlanie wyglñdu przycisków opcji przy uĔyciu widĔetu buttonset .....................................................168 Receptura: Wybór dat przy uĔyciu widĔetu datepicker .....................169 OkreĈlanie wyglñdu kalendarza ...............................................170 OkreĈlanie opcji kalendarza ....................................................171 Obsäuga zdarzeþ kalendarza ...................................................176 Wywoäywanie metod kalendarza ..............................................177 Receptura: Przyciñganie uwagi przy uĔyciu okien dialogowych ..........178 OkreĈlanie wyglñdu okna dialogowego .....................................179 OkreĈlanie opcji okna dialogowego ..........................................180 Obsäuga zdarzeþ generowanych przez okna dialogowe ...............181 Wywoäywanie metod okien dialogowych ....................................184
Spis treĈci Receptura: WyĈwietlanie informacji o postöpie prac przy wykorzystaniu widĔetu progressbar ......................................185 OkreĈlanie wyglñdu paska postöpów .......................................186 Ustawianie opcji paska postöpów ............................................186 Obsäuga zdarzeþ paska postöpów ...........................................186 Wywoäywanie metod paska postöpów ......................................187 Receptura: Pobieranie liczb przy wykorzystaniu suwaka ..................187 OkreĈlanie wyglñdu suwaka ....................................................188 OkreĈlanie opcji suwaków .......................................................189 Obsäuga zdarzeþ suwaka ........................................................189 Wywoäywanie metod suwaków .................................................190 Receptura: Nawigowanie po stronie przy wykorzystaniu kart ............191 OkreĈlanie wyglñdu kart .........................................................192 OkreĈlanie opcji widĔetu kart ..................................................193 Obsäuga zdarzeþ widĔetu tabs .................................................194 Wywoäywanie metod widĔetu tabs ............................................196 Podsumowanie ...........................................................................197
CzöĈè III Strony na urzñdzenia przenoĈne ........................199 Rozdziaä 8. Zmiany wyglñdu ...............................................................201 Zmiana stylów uĔywanych w komponentach jQuery UI .....................201 Tworzenie animacji z wykorzystaniem moĔliwoĈci biblioteki jQuery Core ................................................................202 Receptura: Animacja kolorów przy uĔyciu jQuery UI .........................204 Receptura: Ukrywanie elementów przy uĔyciu funkcji wygaszania i przesuwania jQuery Core ..........................................................205 Receptura: Dodawanie efektów graficznych przy uĔyciu jQuery UI .....206 Receptura: Animacja dodawania i usuwania klas CSS przy uĔyciu jQuery UI ..................................................................208 Receptura: WyĈwietlanie wszystkich funkcji przejĈcia definiowanych przez jQuery UI ....................................................210 Receptura: WyĈwietlanie wszystkich ikon definiowanych przez jQuery UI ..........................................................................211 Receptura: UĔycie obietnic do wykonania kodu po zakoþczeniu animacji ............................................................213 Receptura: Wykonywanie kodu podczas animacji przy wykorzystaniu funkcji queue i dequeue ............................................................215 Podsumowanie ...........................................................................217
Rozdziaä 9. Nawigacja przy uĔyciu jQuery Mobile .................................219 Receptura: Przygotowywanie podstawowych elementów jQuery Mobile ...........................................................................219 Receptura: Udostöpnianie wielu stron przy uĔyciu jednego pliku HTML ..................................................221
11
12
jQuery, jQuery UI oraz jQuery Mobile. Receptury Receptura: Zmiana tytuäu elementu ..............................................223 Receptura: Wczytywanie zewnötrznych stron przy uĔyciu technologii AJAX .......................................................224 Receptura: WyĈwietlanie komunikatów o wczytywaniu stron ............227 Receptura: Odwoäania do zewnötrznych stron bez korzystania z technologii AJAX ..............................................228 Receptura: OkreĈlanie animacji przejĈcia ......................................229 Receptura: Stosowanie niestandardowych efektów przejĈè .............231 Receptura: Obsäuga zdarzeþ generowanych przez urzñdzenia przenoĈne .......................................................233 Receptura: Generacja przycisku Wstecz ........................................237 Receptura: Dodawanie stopek u doäu strony ..................................238 Receptura: Ta sama stopka na wielu stronach ..............................241 Receptura: WyĈwietlanie stopki w ustalonym miejscu .....................242 Receptura: WyĈwietlanie i ukrywanie stopki ...................................244 Receptura: Optymalizacja nagäówków i stopek pod kñtem prezentacji peänoekranowych .....................................246 Receptura: Zmiana schematu kolorów przy uĔyciu tematów ............247 Receptura: Tworzenie wielu kolumn ..............................................249 Receptura: Zmiana stron przy wykorzystaniu skryptów ....................251 Receptura: Wczytywanie stron przy uĔyciu skryptów ........................253 Receptura: Doäñczanie danych do wözäów DOM przy uĔyciu jQuery Mobile ...........................................................255 Receptura: Korzystanie z funkcji pomocniczych jQuery Mobile .........256 Podsumowanie ...........................................................................260
Rozdziaä 10. Obsäuga interakcji przy uĔyciu jQuery Mobile .....................261 Receptura: WyĈwietlanie pasków narzödzi w treĈci strony ...............261 Receptura: WyĈwietlanie paska ostrzeĔenia ..................................263 Receptura: Dodawanie pasków menu do stopek ............................264 Receptura: Poruszanie siö po stronach przy uĔyciu paska nawigacyjnego ................................................265 Receptura: WyĈwietlanie i ukrywanie treĈci przy uĔyciu elementów zwijanych ................................................268 Receptura: Symulacja akordeonu poprzez uĔycie zbioru elementów zwijanych .................................270 Receptura: Pobieranie prostych danych tekstowych przy wykorzystaniu pól formularzy ...............................................271 Receptura: Wprowadzanie dat ......................................................273 Receptura: WyĈwietlanie pól formularzy przy wykorzystaniu alternatywnych klawiatur ............................................................275 Receptura: WyĈwietlanie wyspecjalizowanych rodzajów pól formularzy ...........................................................................276 Receptura: Wprowadzanie liczb caäkowitych przy uĔyciu suwaków ....278 Receptura: Ustawianie wartoĈci binarnych przy uĔyciu przeäñczników ...........................................................279
Spis treĈci Receptura: Wybór jednego elementu przy uĔyciu przycisków opcji ....280 Receptura: Wybieranie wielu elementów przy uĔyciu pól wyboru .......282 Receptura: Wybieranie elementów z rozwijanej listy ........................284 Receptura: WyĈwietlanie standardowych pól poprzez wyäñczenie jQuery Mobile ...............................................286 Receptura: WyĈwietlanie list elementów ........................................288 Receptura: Filtrowanie elementów list ...........................................296 Receptura: Grupowanie elementów formularzy na listach ................297 Podsumowanie ...........................................................................298
CzöĈè IV Wtyczki ...........................................................299 Rozdziaä 11. Tworzenie wtyczek ...........................................................301 Receptura: Przygotowywanie prostej, statycznej wtyczki ..................301 Receptura: Tworzenie prostych wtyczek kontekstowych ..................303 Receptura: ãñczenie wtyczek i funkcji jQuery w äaþcuch wywoäaþ .....304 Receptura: Parametryzacja wtyczek ..............................................306 Receptura: Tworzenie parametrów domyĈlnych ..............................307 Receptura: Sterowanie dziaäaniem wtyczki przy uĔyciu metod ..........308 Receptura: Tworzenie wtyczki, która tworzy wtyczki .........................311 Receptura: Rejestracja i wywoäywanie funkcji zwrotnych ..................314 Receptura: Przekazywanie kontekstu do funkcji zwrotnych ..............316 Receptura: Zwracanie obiektu Deferred w celu wywoäywania odröbnych funkcji zwrotnych w razie powodzenia i poraĔki .............317 Receptura: Zwracanie obiektu Promise w celu ukrycia szczegóäów dziaäania ............................................319 Receptura: Przedstawienie zabezpieczenia obiektu obietnicy ..........320 Receptura: Stosowanie obiektów Promise do kontroli sterowania realizacjñ kodu ........................................321 Receptura: Wizualizacja postöpów przed wywoäaniem koþcowej funkcji zwrotnej ...............................323 Receptura: Przekazywanie kontekstu do funkcji zwrotnych ..............324 Receptura: Przekazywanie kontekstu do funkcji informujñcych o postöpach operacji .................................................................326 Podsumowanie ...........................................................................327
Rozdziaä 12. Korzystanie z gotowych wtyczek ......................................329 Receptura: WyĈwietlanie okna modalnego .....................................330 Receptura: Stosowanie rozwijanego menu .....................................332 Receptura: Stosowanie wtyczki ScrollSpy ......................................334 Receptura: Przeäñczane karty .......................................................336 Receptura: Dodawanie podpowiedzi ..............................................338 Receptura: Stosowanie okienek informacyjnych .............................340 Receptura: Ostrzeganie uĔytkownika .............................................342 Receptura: Przyciski ....................................................................343
13
14
jQuery, jQuery UI oraz jQuery Mobile. Receptury Receptura: Zwijanie treĈci ............................................................346 Receptura: Umieszczanie treĈci w karuzeli ....................................348 Receptura: Korzystanie z automatycznego uzupeäniania ..................351
Skorowidz .........................................................................355
O autorach Adriaan de Jonge pracuje jako konsultant w firmie Xebia IT Architects w Holandii. Specjalizuje się w zagadnieniach związanych z internetem, zarządzaniem zawartością oraz językiem Java. Interesuje się nowymi technologiami, takimi jak MongoDB, Node.js, HTML5, oraz różnymi platformami do pracy w chmurze. Adriaan jest także autorem książki Essential App Engine (wydanej przez wydawnictwo Addison-Wesley w 2012 roku) oraz serii artykułów o Javie, XML oraz technologiach internetowych, opublikowanych na witrynie IBM developerWorks. Ma także doświadczenia jako prelegent, zdobyte na konferencjach JFall 2011 oraz Scandinavian Developer Conference w 2012 roku. Phil Dutson jest głównym programistą interfejsu użytkownika w ICON Health and Fitness. Pracował nad projektami i rozwiązaniami dla Nordic Track, ProForm, Freemotion, Sears, Costco, Sam’s Club oraz innych firm. Był jednym z członków początkowego zespołu iFit, pracującego nad zintegrowaniem Google Maps ze spersonalizowanym planem do tworzenia i odtwarzania ćwiczeń. Phil był współtwórcą witryny The E-Com DevBlog, a aktualnie nią zarządza. Jest to blog programistyczny poświęcony zagadnieniom aplikacji oraz rozwiązań internetowych. Aby dowiedzieć się więcej na jego temat, wystarczy zajrzeć na stronę http://dev.tonic1394.com. Phil jest także autorem książki Sams Teach Yourself jQuery Mobile in 24 Hours (wydanej przez wydawnictwo Sam w 2013 roku).
16
jQuery, jQuery UI oraz jQuery Mobile. Receptury
Wstęp K
iedy język JavaScript po raz pierwszy pojawił się na scenie technologii internetowych, szybko został zaszufladkowany przez ekspertów jako zabawka, nadająca się jedynie do odwracania uwagi i całkowicie nieprzydatna do obsługi interakcji z użytkownikiem. Jednak obecnie JavaScript jest podstawową siłą napędową umożliwiającą tworzenie zaawansowanych interfejsów użytkownika, zapewnianie doskonałej integracji danych oraz wsparcia dla operacji wykonywanych po stronie klienta. Choć wszystko można zrobić, korzystając z podstawowych możliwości JavaScriptu, to jednak wiele osób odkryło, że korzystanie z różnego typu bibliotek i platform pozwala im zrobić więcej. jQuery jest doskonałą biblioteką pozwalającą zaspokoić potrzebę integracji JavaScriptu. Jej motto brzmi: pisz mniej, rób więcej. I jest to hasło, które zespół programistów tworzących tę bibliotekę traktuje bardzo poważnie. Niezależnie od tego, czy pracujemy nad zwyczajną witryną internetową, która nie wymaga znacznego modyfikowania DOM-u, czy tworzymy zbiór własnych kontrolek, czy też w końcu zajmujemy się obsługą urządzeń przenośnych, twórcy jQuery dysponują biblioteką, która został przygotowana i dokładnie przetestowana na wielu platformach, w możliwie jak największej liczbie przeglądarek i urządzeń, a wszystko po to, by zapewnić jak najlepsze doznania użytkownikom i wygodę pracy programistom.
Dlaczego powstaäa ksiñĔka z recepturami i przykäadami na temat jQuery? Ktoś mógłby powiedzieć, że jeśli tylko znamy CSS, to wiemy, jak korzystać z jQuery, jednak takie stwierdzenie nie jest do końca prawdziwe. Choć taka wiedza bez wątpienia pomaga w zrozumieniu mechanizmu wybierania elementów stosowanego przez jQuery, to jednak udostępnia ona tak wiele dodatkowych funkcji służących do manipulowania kodem HTML, przeliczania i obsługi interakcji, że ta książka jest po prostu niezbędna, by poznać wszystkie fantastyczne rzeczy, które można zrobić, używając tej biblioteki.
18
jQuery, jQuery UI oraz jQuery Mobile. Receptury
Receptury są w tym przypadku kluczowe, gdyż nie tylko informują o funkcjach, których możemy używać, lecz jednocześnie prezentują kompletne przykłady uzupełnione opisami, wyjaśniającymi najciekawsze lub najtrudniejsze fragmenty kodu. Dzięki przedstawieniu bibliotek jQuery UI oraz jQuery Mobile niniejsza książka staje się najlepszym przewodnikiem; bez trudu można dowiedzieć się z niej o innych bibliotekach przygotowanych przez zespół twórców jQuery i przekonać się, jak się wzajemnie uzupełniają i pomagają, by nasz kolejny projekt stał się spektakularnym sukcesem.
Dla kogo jest przeznaczona ta ksiñĔka? Wszyscy, którzy dysponują praktyczną znajomością języków HTML, CSS oraz JavaScript, sięgając po tę książkę i przeglądając zamieszczone w niej przykłady, poczują się jak w domu. Osoby, które nie dysponują znajomością technologii internetowych, będą potrzebowały nieco więcej czasu, by zrozumieć i opanować prezentowane w niej informacje. Innymi słowy, wszyscy, którzy potrafią się uczyć, analizując pełny kod HTML strony wraz z skryptami niezbędnymi do działania przykładów, będą się mogli nauczyć jQuery szybko i efektywnie.
Jak korzystaè z tej ksiñĔki? Każda receptura lub przykład stanowi zbiór niezależnych skryptów, które można umieścić na ulubionym serwerze WWW i wyświetlić w przeglądarce. Choć niektóre z nich można wyświetlać i uruchamiać, otwierając stronę bezpośrednio w przeglądarce, to jednak nie można tego zrobić z przykładami prezentującymi technologię AJAX; dlatego też korzystanie z serwera WWW jest bardzo zalecane. Po przeczytaniu tej książki będziesz: potrafił dodawać jQuery do tworzonych projektów; rozumiał różnice pomiędzy podstawową wersją biblioteki jQuery
(jQuery Core), jQuery UI oraz jQuery Mobile; znał główne możliwości funkcjonalne i funkcje biblioteki jQuery Core; biegle potrafił dodawać style i korzystać z widżetów oraz obsługiwać interakcję
z użytkownikami przy użyciu jQuery oraz jQuery UI; potrafił tworzyć witryny przeznaczone do obsługi z poziomu urządzeń
przenośnych, korzystając przy tym z możliwości biblioteki jQuery Mobile; wiedział, jak tworzyć własne wtyczki i stosować je w swoich witrynach; wiedział, jak korzystać z gotowych wtyczek, takich jak te wchodzące w skład
platformy Bootstrap.
Struktura ksiñĔki
Struktura ksiñĔki Rozdziały od 1. do 5. są poświęcone podstawowej bibliotece jQuery, nazywanej także jQuery Core. Rozdział 1. przedstawia podstawowe sposoby korzystania z niej, dołączania do stron WWW oraz tworzenia tablic, obsługi niestandardowych atrybutów oraz testowania możliwości przeglądarki. Rozdział 2. jest poświęcony tajnikom wybierania elementów stron. Rozdział 3. pokazuje, w jaki sposób jQuery może nam pomóc w manipulowaniu strukturą DOM wyświetlanych stron. Rozdział 4. zabiera nas na wycieczkę po obsłudze zdarzeń przy użyciu biblioteki jQuery oraz przedstawia różnice pomiędzy sposobami, w jakie zdarzenia są obsługiwane w jQuery 1.6 oraz 1.7. Rozdział 5. został poświęcony zagadnieniom komunikacji z serwerem, w tym także korzystaniu z technologii AJAX, tworzeniu stron z informacjami o błędach, przekierowaniach oraz obsłudze danych XML. Rozdziały od 6. do 8. są poświęcone możliwościom biblioteki jQuery UI. Rozdział 6. przedstawia dodatkowe możliwości funkcjonalne, które ona daje, takie jak obsługa przeciągania, upuszczania oraz sortowania elementów. Rozdział 7. przedstawia widżety, w tym widżet akordeonu, mechanizm automatycznego uzupełniania, przyciski, kalendarze, okna dialogowe, paski postępu, suwaki oraz karty. Rozdział 8. koncentruje się na zagadnieniach stylów i określaniu wyglądu interfejsu użytkownika oraz na efektach wizualnych i efektach przejść. Rozdziały 9. i 10. są poświęcone bibliotece jQuery Mobile. Rozdział 9. zaczyna się od przedstawienia podstawowych informacji na temat przygotowywania witryn dla urządzeń przenośnych oraz struktury stron, sposobów ich wczytywania, przechodzenia pomiędzy nimi i stosowania animacji. Rozdział 10. prezentuje dodatkowe widżety i style, które udostępnia biblioteka jQuery Mobile, w tym paski nawigacyjne, suwaki, przełączniki oraz elementy formularzy. Rozdziały 11. i 12. są poświęcone zagadnieniom tworzenia i stosowania wtyczek. Rozdział 11. zawiera wyczerpujące wprowadzenie wyjaśniające, czym jest wtyczka, z czego się składa oraz jak tworzyć własne wtyczki udostępniające własne metody i pozwalające na tworzenie łańcuchów wywołań. Rozdział 12. zawiera przykłady korzystania z bezpiecznych wtyczek wchodzących w skład platformy Bootstrap firmy Twitter, pozwalających na wzbogacenie funkcjonalności i poprawę wyglądu tworzonych projektów.
Zasoby dodatkowe Jest wiele miejsc, w których można zdobyć dodatkowe informacje na temat bibliotek jQuery, jQuery UI oraz jQuery Mobile. Ich oficjalne witryny udostępniają doskonałą dokumentację, wyjaśniają konsekwencje stosowania niezalecanego kodu i zawierają informacje o nowych możliwościach.
19
20
jQuery, jQuery UI oraz jQuery Mobile. Receptury
Oto kilka przydatnych witryn, na które warto zajrzeć: Dokumentacja API jQuery: http://api.jquery.com/. Dokumentacja jQuery UI: http://jqueryui.com/. Dokumentacja jQuery Mobile: http://jquerymobile.com/. Strona poĞwiĊcona platformie JavaScript Bootstrap:
http://twitter.github.io/bootstrap/javascript.html. Dokumentacja Zurb Foundation: http://foundation.zurb.com/docs/. jQuery Tools: http://jquerytools.org/. Forum Stack Overflow: http://stackoverflow.com/.
I Podstawy Rozdziaä 1. Rozpoczynanie pracy z jQuery Rozdziaä 2. Wybór elementów Rozdziaä 3. Modyfikowanie stron Rozdziaä 4. Odbieranie zdarzeþ i odpowiadanie na nie Rozdziaä 5. Komunikacja z serwerem
22
Rozdziaä 1. Python dla Django
1 Rozpoczynanie pracy z jQuery M
ottem jQuery jest: pisz mniej, rób więcej. Korzystając z biblioteki jQuery, można zacząć to robić, a jedyną potrzebną rzeczą jest ulubiony edytor tekstów. Ten rozdział rozpoczyna się od klasycznej receptury typu „Witaj, świecie”, która stanowi wprowadzenie do korzystania z jQuery, przedstawia podstawowe informacje na temat funkcji $ oraz wyjaśnia, w jaki sposób można unikać konfliktów z innymi używanymi bibliotekami. Aby zapewnić, że pisany przez nas kod będzie równie zwięzły jak kod jQuery, biblioteka ta udostępnia zbiór funkcji pomocniczych. W tym rozdziale zostaną opisane najważniejsze z nich, które mają nam ułatwiać eliminację niepotrzebnego kodu i pozwalać na efektywne wykonywanie najczęściej powtarzanych operacji. Wiele z tych funkcji będzie używanych w recepturach przedstawionych w kolejnych rozdziałach.
Receptura: Przedstawienie podstawowego sposobu uĔycia jQuery Biblioteka jQuery ułatwia separację kodu HTML i JavaScript. Zamiast umieszczać w kodzie HTML wiele atrybutów onclick, jQuery pozwala wybrać wszystkie elementy, które muszą odpowiadać na zdarzenia click, i dodać do nich odpowiednią funkcję obsługi. Listing 1.1 przedstawia podstawowy sposób odwoływania się do elementów HTML w kodzie JavaScript i dodawania procedur obsługi zdarzeń. Listing 1.1. Przedstawienie podstawowego sposobu uĔycia jQuery 00 01 02 03 04
Wprowadzenie
24
Rozdziaä 1. Rozpoczynanie pracy z jQuery 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
Wprowadzenie
Kod HTML tego przykïadu celowo jest bardzo prosty.
To jest miejsce, gdzie zostanie umieszczona treĂÊ.
Moĝna kliknÈÊ ten akapit.
Uwaga Za obowiñzujñcñ zasadö naleĔy przyjñè unikanie umieszczania kodu JavaScript oraz arkuszy stylów CSS w dokumentach HTML. Ta ksiñĔka jednak siö do niej nie stosuje — aby poprawiè czytelnoĈè przykäadów, caäy kod tworzñcy prezentowane strony WWW jest umieszczany w jednym pliku. Jednak zazwyczaj skrypty naleĔy umieszczaè w odröbnych plikach JavaScript i odwoäywaè siö do nich tak jak do biblioteki jQuery, w sposób przedstawiony w wierszu 29.
Receptura: Przedstawienie podstawowego sposobu uĔycia jQuery
Za wyjątkiem jednego elementu