Éric Sarrion. JQuery 1. 7. & JQuery UI. 2 e édition. Groupe Eyrolles, 2011, 2012, ISBN : 978-2-212-13504-6



Documents pareils
2 LES BASES DU HTML 19 Qu est-ce que le HTML? 20 De quand date le HTML? 20 Écrire son propre code HTML 22

FLEX 3. Applications Internet riches avec Flash ActionScript 3, MXML et Flex Builder. Aurélien Vannieuwenhuyze

ContactForm et ContactFormLight - Gestionnaires de formulaire pour Prestashop Edité par ARETMIC S.A.

Notes pour l utilisation d Expression Web

Présentation du Framework BootstrapTwitter

Formation : WEbMaster

Édu-groupe - Version 4.3

Avant-propos FICHES PRATIQUES EXERCICES DE PRISE EN MAIN CAS PRATIQUES

Optimiser pour les appareils mobiles

Bonnes pratiques de développement JavaScript

Webmaster / Webdesigner / Wordpress

HTML. Notions générales

< Atelier 1 /> Démarrer une application web

Magento. Magento. Réussir son site e-commerce. Réussir son site e-commerce BLANCHARD. Préface de Sébastien L e p e r s

Démarrer et quitter... 13

Manuel du composant CKForms Version 1.3.2

Ajax, RIA et HTML Prise en charge d Ajax

WysiUpStudio. CMS professionnel. pour la création et la maintenance évolutive de sites et applications Internet V. 6.x

Devenez un véritable développeur web en 3 mois!

Afin d accéder à votre messagerie personnelle, vous devez vous identifier par votre adresse mail et votre mot de passe :

Etude et développement d un moteur de recherche

Contenu Microsoft Windows 8.1

Publier dans la Base Documentaire

WordPress Référencement naturel (SEO) Optimiser. son référencement. Daniel Roch. Préface d Olivier Andrieu

Intégrateur Web HTML5 CSS3

WEB & DÉVELOPPEMENT LES BASES DU WEB LE LANGAGE HTML FEUILLES DE STYLES CSS HISTORIQUE D INTERNET ET DU WEB LES DIFFÉRENTS LANGAGES

Access 2007 FF Access FR FR Base

Groupe Eyrolles, 2003, ISBN : X

SOMMAIRE. 1. Connexion à la messagerie Zimbra Pré-requis Ecran de connexion à la messagerie 4

Installation et utilisation du client FirstClass 11

Informatique appliqué Microsoft Windows et la suite bureautique Office. Carlier François

Table des matières ENVIRONNEMENT

L ORDINATEUR FACILE D ACCÈS!

Malgré son aspect spartiate, Freeplane offre de nombreuses fonctionnalités en particulier dans le domaine de la diffusion des cartes sur le Web.

Formation. Module WEB 4.1. Support de cours

MAILING KOMPOZER... 2 CREEZ UNE PAGE... 2 FORMAT DE LA PAGE... 2 AJOUTER DU TEXTE SUR UNE PAGE... 4

COURS WINDEV NUMERO 3

Formation Webmaster : Création de site Web Initiation + Approfondissement

Mozilla Firefox 3.5. Google Chrome 3.0 LES NAVIGATEURS WEB. (pour Windows) Opéra 10. Internet Explorer 8. Safari 4.0

KompoZer. Composition du site : _ une page d'accueil : index.html. _ une page pour la théorie : theorie.html. _ une page pour les photos : photos.

Nouveautés dans Excel 2013

Programmation Web. Madalina Croitoru IUT Montpellier

Ouvrir le compte UQÀM

Numbers sur ipad. Atelier Formation Numbers sur ipad. [Notes extraitres de l'aide en ligne]

NFA016 : Introduction. Pour naviguer sur le Web, il faut : Naviguer: dialoguer avec un serveur web

Table des matières Avant-propos... V Scripting Windows, pour quoi faire?... 1 Dans quel contexte?

Soyez accessible. Manuel d utilisation du CMS

Contenu Windows 8 MODULE 1 AVANT-PROPOS MODULE 2 INTRODUCTION À WINDOWS 8 MODULE 4 APPLICATIONS WINDOWS 8 PARTIE 1 MODULE 3 PARAMÈTRES DE WINDOWS 8

BIRT (Business Intelligence and Reporting Tools)

Guide d utilisation des services My Office

Gestion de références bibliographiques

Séminaire d information MIGRATION WINDOWS 7 ET OFFICE 2010

Calc 2 Avancé. OpenOffice.org. Guide de formation avec exercices et cas pratiques. Philippe Moreau

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

Évaluation des compétences. Identification du contenu des évaluations. Septembre 2014

Administration du site

SYSTÈMES D INFORMATIONS

avast! EP: Installer avast! Small Office Administration

Tutoriel. Votre site web en 30 minutes

PARAMETRAGE D INTERNET EXPLORER POUR L UTILISATION DE GRIOTTE

Comment insérer une image de fond?

Groupe Eyrolles, 2006, pour la présente édition, ISBN :

ENDNOTE X2 SOMMAIRE. 1. La bibliothèque EndNote 1.1. Créer une nouvelle bibliothèque 1.2. Ouvrir une bibliothèque EndNote 1.3. Fermer une bibliothèque

Nouveautés de la version moodle 2.7

TD3 - Facturation avec archivage automatisé

Chapitre 1. Prise en main

Créer sa première base de données Access Partie 4/4 - Création d un état

Manuel d utilisation du web mail Zimbra 7.1

ZOTERO. Installation. Bibliothèque de Pharmacie. Service Formation

Langage HTML (2 partie) <HyperText Markup Language> <tv>lt La Salle Avignon BTS IRIS</tv>

Initiation à Mendeley AUT2012

Utilisation de Zimbra 1 / 103

LES GRANDES ETAPES DE CREATION D UN WEB DESIGN

VERSION : 1.0. Utilisation de Zimbra

26 Centre de Sécurité et de

Sage 100 CRM - Guide de la Fusion Avancée Version 8. Mise à jour : 2015 version 8

HTML5 et CSS3 pour des sites Responsive Web Design

Tapez le titre de la page «BASTIA ville méditerranéenne», puis allez deux fois à la ligne à l aide de la touche Entrée.

Les PowerToys pour Windows XP

Création d un formulaire de contact Procédure

EXCEL TUTORIEL 2012/2013

Zotero est une extension du navigateur Firefox. Il est possible de télécharger Firefox gratuitement sur le site:

EXTENSION de Microsoft Dynamics CRM Réf FR 80452

AGASC / BUREAU INFORMATION JEUNESSE Saint Laurent du Var - E mail : bij@agasc.fr / Tel : CONSIGNE N 1 :

Projet 2. Gestion des services enseignants CENTRE D ENSEIGNEMENT ET DE RECHERCHE EN INFORMATIQUE. G r o u p e :

On trouvera sur le site du CCDMD un exemple d album construit avec Cantare. (

Chapitre 3 : outil «Documents»

TP JAVASCRIPT OMI4 TP5 SRC

Manuel d utilisation du site web de l ONRN

ASP Journal Alert Guide d utilisation

FreeMind. Freeplane XMind. 2 e édition. Bien démarrer avec le Mind Mapping. . Groupe Eyrolles, 2010, ISBN :

VOCABULAIRE LIÉ AUX ORDINATEURS ET À INTERNET

Manuel d utilisation NETexcom

Documentation RBS Change E-Commerce Core

Publier un Carnet Blanc

SUPPORT DE COURS ACCESS 2010

Edition de sites Jahia 6.6

Wix : mettre en place un site d e commerce

Support de formation Notebook

Transcription:

Éric Sarrion JQuery 1. 7 & JQuery UI 2 e édition Groupe Eyrolles, 2011, 2012, ISBN : 978-2-212-13504-6

Avant-propos Dernier né des frameworks JavaScript, jquery a immédiatement séduit les développeurs web. Simple, efficace, complet, il permet de manipuler les pages HTML au moyen de JavaScript de façon révolutionnaire. Finie la syntaxe compliquée : la fonction jquery (), abrégée en $ (), remplace toutes les méthodes JavaScript que vous connaissez. Faire plus simple aurait été difficile... De plus, jquery évolue! Les versions se suivent de façon régulière, tout en gardant une compatibilité ascendante. Aujourd hui, avec la version 1.7, vous accédez à des concepts nouveaux, comme la gestion d objets Deferred permettant d effectuer des synchronisations de tâches, ou la gestion d objets Callbacks pour agir de façon différée sur un événement. Surfant sur la vague, jquery UI a ajouté des fonctionnalités à jquery, au moyen de plug-ins. La même facilité d utilisation que pour jquery est en œuvre, permettant très simplement d ajouter des fonctionnalités graphiques intéressantes comme le glisser-déposer (drag & drop) ou le multifenêtrage, ou encore l autocomplétion. Avec jquery et jquery UI, vous ajoutez à vos sites web une interaction très complète avec les besoins des utilisateurs. Très (trop) peu de livres étant malheureusement disponibles aujourd hui, en français comme en anglais, sur jquery et jquery UI, la nouvelle édition de ce livre, mis à jour pour jquery 1.7, essaye de combler cette lacune, en regroupant dans un même opus (un peu épais mais très digeste) ces deux sujets, très liés l un à l autre. Complet et didactique les fonctions sont présentées les unes après les autres accompagnées d exemples d utilisation, il permettra aux étudiants intéressés par ce sujet d avenir de comprendre et maîtriser le fonctionnement de jquery et jquery UI. Pour les mêmes raisons, il conviendra parfaitement aux développeurs qui souhaitent améliorer l interface utilisateur de leur site, mais aussi aux chefs de projets qui souhaitent connaître les possibilités offertes par ces deux bibliothèques.

VI jquery 1.7 & jquery UI À l attention des puristes du code... L auteur de ce livre n est pas un puriste du code! Il n a qu une ambition : expliquer de la manière la plus simple possible le fonctionnement de jquery et vous montrer comment l utiliser dans vos propres applications. Pour cela, les exemples sont écrits le plus simplement possible, en simplifiant certaines syntaxes, en particulier dans le code HTML. Par exemple, un puriste écrira ceci pour inclure un fichier JavaScript dans le code HTML : <script type="text/javascript" src="jquery.js"></script> L auteur, se concentrant sur la partie réellement utile du code, écrira plutôt : <script src=jquery.js></script> Vous remarquerez que l attribut type a disparu, et que les valeurs des attributs ne sont pas entourées des guillemets. Bien sûr, les deux syntaxes fonctionnent parfaitement dans tous les navigateurs. La seconde présente l avantage de montrer d un seul coup d œil que le fichier jquery.js est inclus dans le code HTML, sans avoir à lire une longue ligne. Un autre exemple est celui du formatage standard d une page HTML. On sait que les standards du W3C (le World Wide Web Consortium, la haute autorité qui essaye d édicter des règles pour le Web) préconisent d écrire une page HTML de la façon suivante : Format d une page HTML selon les standards du W3C <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/tr/html4/strict.dtd"> <html lang="fr"> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <title>titre de la page</title> </head> <body> <div>contenu de la page</div> </body> </html> On retrouve ici la directive DOCTYPE, suivie de la balise <html>, puis les balises <head> et <body>, chacune d elles pouvant inclure d autres balises.

Avant-propos VII Une fois qu on sait comment une page HTML est formatée en standard, on s aperçoit, en réfléchissant un peu, que le lecteur sera finalement surtout intéressé, pour son apprentissage de jquery, par les réponses aux questions suivantes : quels fichiers CSS et JavaScript sont inclus dans la page ; quel est le code HTML inclus dans la balise <body> ; quelles sont les lignes de code JavaScript utilisées dans cette page. C est pour cela que les programmes qui suivent sont dépouillés de certaines balises, telles les balises <html>, <head> et <body>. Si elles ne sont pas présentes dans notre code, le navigateur web les insère lui-même dans l arborescence HTML qu il construit à partir du code HTML de la page. Cette pratique a un avantage : lorsqu une balise sera obligatoire, cela sera signalé. Le lecteur saura donc que, dans ce cas précis, la balise <body>, par exemple, est obligatoire (ce cas sera fréquent lors de l étude de jquery UI). En fait, au lieu de systématiquement insérer toutes les balises dans la page, nous insérons uniquement celles qui sont strictement nécessaires dans ce cas précis. Cela permet de bien voir le rôle de chacune d entre elles et de comprendre leur utilité. L essentiel est que les programmes de ce livre fonctionnent parfaitement sur tous les navigateurs, ce qui est le cas (sauf erreurs typographiques indépendantes de notre volonté). Structure du livre Ce livre est structuré en deux parties : la première est consacrée à l étude de la bibliothèque jquery, tandis que la seconde explore le plug-in jquery UI (en fait, un ensemble de plug-ins regroupés sous le terme générique de jquery UI). Dans la première partie, on trouvera : une introduction à jquery, permettant de comprendre la suite de l ouvrage (chapitre 1) ; les méthodes utilitaires définies par jquery (chapitre 2) ; l étude des sélecteurs, fondamentaux pour écrire du code jquery (chapitre 3) ; l étude des méthodes fournies par jquery, permettant d accéder au DOM et de le manipuler (chapitres 4 et 5), mais aussi de gérer les événements (chapitre 6), d effectuer des requêtes Ajax (chapitre 7) et de produire des effets visuels (chapitre 8) ; la façon de créer un plug-in pour ajouter des fonctionnalités à jquery (chapitre 9) ;

VIII jquery 1.7 & jquery UI la création d objets Deffered (chapitre 10) et Callbacks (chapitre 11) ; un exemple d application complet utilisant jquery, Ajax et PHP (chapitre 12). Dans la seconde partie, dédiée à jquery UI, on trouvera : une introduction à jquery UI, et son paramétrage en fonction des besoins (chapitre 13) ; l étude des fonctionnalités offertes par jquery UI, permettant de faciliter les interactions des utilisateurs dans la page HTML : onglets, menus en accordéon, boîtes de dialogue, boutons, boîtes de progression, sliders, calendriers, autocomplétion, glisser-déposer (drag & drop), sélection multiple, permutation d éléments, redimensionnement et effets visuels divers (chapitres 14 à 26). Remerciements Tous mes remerciements à Karine Joly et à l équipe Eyrolles, pour leur relecture attentive de ce livre, auquel ils ont eux aussi contribué. Retrouvez l auteur sur son site Internet : http://ericsarrion.fr

Table des matières PREMIÈRE PARTIE Les bases de jquery...1 CHAPITRE 1 Philosophie et principes de base... 3 Installation de jquery...............................................3 L objet jquery.....................................................4 $ comme raccourci.................................................4 Chaînage des méthodes.............................................5 Propriétés et méthodes de l objet jquery................................5 Propriétés et méthodes de l objet retourné par jquery ()....................7 Quelques vérifications..............................................8 Philosophie générale de jquery.......................................9 Distinguer l objet jquery et la fonction jquery ()........................9 La fonction jquery () et ses méthodes................................9 Et maintenant?..................................................10 CHAPITRE 2 Méthodes utilitaires... 11 Manipulation d objets..............................................11 Objets en JavaScript............................................11 Méthodes disponibles dans jquery.................................13 $.each () : parcours des propriétés d un objet........................... 13 $.extend () : ajouter des propriétés à un objet.......................... 14 Méthodes booléennes............................................. 16 Manipulation de tableaux...........................................16 Tableaux en JavaScript..........................................16 Méthodes disponibles dans jquery.................................17 $.each () : parcours des éléments d un tableau.......................... 18 $.grep () : trier un tableau........................................ 19 $.map () : créer un nouveau tableau................................. 19

X jquery 1.7 & jquery UI $.merge () : concaténer deux tableaux................................ 20 Manipulation de chaînes de caractères.................................21 Chaînes de caractères en JavaScript.................................21 Méthodes disponibles dans jquery.................................22 $.each () : parcours des caractères dans une chaîne....................... 22 $.trim () : éliminer les espaces en début et en fin de chaîne................ 23 $.param () : sérialiser les valeurs contenues dans un objet................. 23 Autres propriétés et méthodes.......................................25 $.browser : récupérer le navigateur utilisé............................. 25 $.noconflict () : éviter les conflits entre jquery et d autres bibliothèques JavaScript.......... 26 $.fn.jquery : récupérer la version de jquery utilisée...................... 27 CHAPITRE 3 Sélecteurs... 29 De l importance des sélecteurs.......................................29 Les différents types de sélecteurs.....................................31 Sélecteurs simples..............................................31 Sélecteurs d attributs............................................31 Sélecteurs de classe.............................................32 Sélecteurs d identifiant..........................................33 Les pseudo-classes................................................34 Pseudo-classes générales.........................................34 :first-child..................................................... 34 :last-child..................................................... 34 :nth-child(an+b)................................................ 35 :only-child..................................................... 36 :not.......................................................... 36 :empty........................................................ 36 :eq(n)........................................................ 37 :gt(n)........................................................ 37 :lt(n)......................................................... 37 :first......................................................... 38 :last.......................................................... 38 :even......................................................... 38 :odd.......................................................... 39 :parent....................................................... 39 :contains(text).................................................. 39 :has(selector)................................................... 39 :hidden....................................................... 40 :visible....................................................... 40

Table des matières XI :header....................................................... 40 :animated..................................................... 40 Pseudo-classes liées aux formulaires................................41 Les combinateurs.................................................42 Combinateur de descendance.....................................42 Combinateur filial.............................................43 Combinateur d adjacence directe...................................43 Combinateur d adjacence indirecte.................................43 Les sélecteurs multiples............................................43 Exemples utilisant les sélecteurs......................................44 CHAPITRE 4 Accéder au DOM... 47 Document Object Model : rappels JavaScript...........................47 Éléments et attributs...........................................47 DOM (Document Object Model).................................48 Création dynamique d éléments HTML et texte.......................49 Méthodes d insertion dans la page..................................50 Accès direct aux éléments de la page................................51 Propriétés principales...........................................52 Exemple : création dynamique dans la page...........................53 Les différentes formes de la fonction jquery ()..........................55 $(selector, context).............................................55 $(element)...................................................57 $(elements)..................................................58 $(jqueryobject)...............................................60 $(html).....................................................61 Les méthodes d accès au DOM......................................61 Supprimer des éléments dans la liste................................62 Exemples d utilisation des méthodes................................. 63 filter (selector)..........................................63 filter (callback)..........................................63 not (elements)..........................................64 has (selector)...........................................65 slice (startindex, endindex).................................66 Ajouter des éléments dans la liste..................................67 Exemple d utilisation : add (selector, context).......................... 67 Remplacer les éléments de la liste..................................68 Exemples d utilisation des méthodes................................. 70 find (selector)...........................................70 parents (selector)........................................71

XII jquery 1.7 & jquery UI parentsuntil (selector)....................................72 parent (selector).........................................73 closest (selector, context)....................................74 offsetparent ()..........................................75 siblings (selector)........................................77 prev (selector)..........................................78 prevuntil (selector)......................................79 Autres méthodes..............................................80 Exemples d utilisation des méthodes................................. 81 end ()................................................81 andself ().............................................82 map (callback)..........................................83 CHAPITRE 5 Manipuler le DOM... 85 Parcourir les éléments de la collection.................................85 La méthode each (callback).......................................86 La propriété length.............................................87 Accès à un élément particulier de la collection.........................87 Gérer les attributs et propriétés......................................88 Méthodes gérant les attributs.....................................88 attr (name).................................................... 88 attr (name, value)............................................... 89 attr (obj)...................................................... 89 attr (name, callback)............................................. 89 Méthodes gérant les propriétés....................................90 data (key, value)................................................ 90 data (obj)..................................................... 91 data (key)..................................................... 91 data ()........................................................ 92 Gérer les classes CSS..............................................93 Les méthodes addclass ()........................................93 addclass (name)................................................ 93 addclass (callback).............................................. 95 Les méthodes removeclass ().....................................96 removeclass ()................................................. 96 removeclass (name)............................................. 96 removeclass (callback)........................................... 97 Les méthodes toggleclass ()......................................98 toggleclass (name).............................................. 98 toggleclass (name, addorremove).................................. 99

Table des matières XIII toggleclass (callback)............................................ 99 toggleclass (callback, addorremove)............................... 100 La méthode hasclass (name)....................................101 Gérer les styles..................................................101 La méthode css (name).........................................101 La méthode css (name, value)....................................102 La méthode css (obj)..........................................103 La méthode css (name, callback)..................................104 Gérer les dimensions.............................................105 Définition des termes utilisés....................................105 Hauteur..................................................... 105 Largeur..................................................... 106 Méthodes pour gérer la hauteur..................................107 height ()..................................................... 107 height (value)................................................. 107 innerheight () et outerheight ()................................... 108 Méthodes pour gérer la largeur...................................110 Gérer la position.................................................110 offset (coords)...............................................110 position ()..................................................111 Gérer le contenu.................................................112 Méthodes gérant le contenu sous forme HTML......................112 html ()...................................................... 112 html (html)................................................... 112 html (callback)................................................ 113 Méthodes gérant le contenu sous forme texte........................114 text ()....................................................... 114 text (text).................................................... 115 text (callback)................................................. 116 Gérer l attribut value des éléments de formulaires.....................117 val ()....................................................... 118 val (value)................................................... 119 val (callback)................................................. 119 Gérer l attribut checked des éléments de formulaire....................120 Méthodes d insertion dans le DOM..................................121 Insérer un contenu en début de liste : prepend () et prependto ().........122 prepend (html)................................................ 123 prepend (element).............................................. 123 prepend (jqueryobject)......................................... 123 prepend (callback).............................................. 124 prependto (element)............................................ 125

XIV jquery 1.7 & jquery UI prependto (jqueryobject)....................................... 126 prependto (selector)............................................ 126 Insérer un contenu en fin de liste : append () et appendto ().............127 append (html)................................................. 128 append (element)............................................... 128 append (jqueryobject).......................................... 128 append (callback).............................................. 128 appendto (element)............................................ 129 appendto (jqueryobject)........................................ 129 appendto (selector)............................................. 129 Insérer un contenu avant l élément : before () et insertbefore ()...........130 before (html).................................................. 131 before (element)................................................ 131 before (jqueryobject)........................................... 132 before (callback)................................................ 132 insertbefore (element)........................................... 132 insertbefore (jqueryobject)...................................... 132 insertbefore (selector)........................................... 132 Insérer du contenu après l élément : after () et insertafter ()..............132 after (html)................................................... 133 after (element)................................................. 133 after (jqueryobject)............................................ 134 after (callback)................................................ 134 insertafter (element)............................................ 134 insertafter (jqueryobject)....................................... 135 insertafter (selector)............................................ 135 Insérer autour de l élément : wrap () et wrapall ().....................135 wrap (html).................................................. 135 wrap (element)................................................ 136 wrap (jqueryobject)............................................ 137 wrap (selector)................................................. 138 wrap (callback)................................................ 138 wrapall (html)................................................ 139 wrapall (element).............................................. 140 wrapall (jqueryobject)......................................... 140 wrapall (selector).............................................. 140 wrapall (callback).............................................. 140 Insérer autour du contenu de l élément : wrapinner ()..................140 wrapinner (html).............................................. 141 wrapinner (element)............................................ 142 wrapinner (jqueryobject)....................................... 142

Table des matières XV wrapinner (selector)............................................ 142 wrapinner (callback)........................................... 143 Remplacer l élément par un autre : replacewith ().....................143 replacewith (html)............................................. 143 replacewith (element)........................................... 143 replacewith (jqueryobject)...................................... 144 replacewith (callback)........................................... 145 Autres méthodes de gestion du DOM................................147 CHAPITRE 6 Gestion des événements... 149 La gestion des événements en JavaScript..............................149 Uniformiser la gestion des événements avec la méthode bind (eventname, callback)........................................150 Le paramètre event...............................................152 Propriétés et méthodes : aperçu général.............................152 Propagation de l événement.....................................154 Séquence de propagation......................................... 154 Éléments impliqués dans la propagation............................. 155 Stopper la propagation de l événement.............................. 155 Propriétés du paramètre event....................................156 Méthodes du paramètre event....................................157 Transmettre d autres paramètres à un événement avec bind ()..............157 Événements utilisables dans bind ()..................................159 Événements standards.........................................159 Nouveaux événements.........................................160 Créer et déclencher un nouvel événement............................ 161 Transmettre des paramètres lors du déclenchement..................... 162 Exemples de gestion d événements avec bind ().......................163 Déplacement d un élément dans la page............................. 163 Affichage d un menu............................................ 165 Supprimer un gestionnaire d événement avec unbind ()...................167 Utiliser des catégories dans les noms d événements......................167 S assurer de l accessibilité des éléments HTML avec $(document).ready (callback).......................................168 Autres méthodes de gestion d événements.............................170 Gestion avancée des événements avec jquery 1.7.......................173

XVI jquery 1.7 & jquery UI CHAPITRE 7 Requêtes serveur avec Ajax... 177 Mise en place d un serveur.........................................177 Installer un serveur avec PHP....................................178 Installer un serveur avec Ruby on Rails.............................179 Requêtes Ajax avec $.ajax (options)..................................180 Options disponibles...........................................180 Configuration générale de la requête................................ 181 Fonctions de callback permettant un traitement....................... 181 Paramétrage du serveur......................................... 182 Séquence d appel des fonctions de callback..........................182 Serveur fonctionnant avec PHP................................... 183 Serveur fonctionnant avec Ruby on Rails............................ 185 Traiter la réponse du serveur.....................................186 Récupérer et utiliser responsetext.................................. 186 Serveur en PHP........................................186 Serveur avec Ruby on Rails................................188 Récupérer responsexml......................................... 189 Serveur en PHP........................................189 Serveur avec Ruby on Rails................................191 Utiliser responsexml........................................... 192 Serveur en PHP........................................192 Serveur avec Ruby on Rails................................194 responsetext ou responsexml?................................... 195 Utiliser JSON................................................. 195 Transmettre des paramètres au serveur.............................196 Serveur en PHP............................................... 197 Serveur avec Ruby on Rails...................................... 199 Mises à jour avec load (url, data, success)..............................200 Événements Ajax................................................202 CHAPITRE 8 Produire des effets visuels... 207 Effets visuels standards définis par jquery.............................207 Effets sur la hauteur : slideup (), slidedown () et slidetoggle ()..........208 Faire disparaître des éléments avec slideup ()......................... 208 Faire apparaître des éléments avec slidedown ()...................... 210 Faire apparaître ou disparaître des éléments avec slidetoggle ()........... 211 Effets d opacité : fadein (), fadeout () et fadeto ()....................212 Faire apparaître des éléments avec fadein ().......................... 213

Table des matières XVII Faire disparaître des éléments avec fadeout ()........................ 214 Modifier progressivement l opacité des éléments avec fadeto ()............ 215 Effets combinant hauteur et opacité : show (), hide () et toggle ().........216 Faire apparaître des éléments avec show ()........................... 217 Faire disparaître des éléments avec hide ()........................... 218 Faire apparaître ou disparaître des éléments avec toggle ()............... 219 Enchaînements d effets standards...................................221 Principe de fonctionnement.....................................221 Exemple d utilisation : effet blink.................................222 Créer ses propres effets visuels avec jquery............................222 Créer ses propres effets avec animate ().............................222 Décrire le style final des éléments (paramètre objstyle).................224 Utiliser des valeurs numériques................................... 224 Utiliser des valeurs relatives...................................... 225 Paramétrer la progression dans l effet avec easing......................226 Utiliser easing de manière globale.................................. 226 Utiliser easing de manière locale................................... 227 Enchaînement d effets avec animate ()................................228 Gérer la file d attente des effets visuels................................228 Exécuter des effets simultanés sur les mêmes éléments HTML...........229 Arrêter l exécution d un effet avec stop ()............................230 Différer l exécution d un effet avec delay ()..........................231 CHAPITRE 9 Créer un plug-in jquery... 233 Que peut-on ajouter avec un plug-in?................................234 Ajouter de nouvelles méthodes à l objet jquery.........................234 Créer une seule méthode sur l objet jquery..........................234 Créer plusieurs méthodes sur l objet jquery..........................235 Ajouter de nouvelles méthodes aux objets de classe jquery................237 Créer de nouvelles méthodes sur les objets de classe jquery..............237 Créer la méthode dans jquery.fn.................................. 237 Accéder aux éléments HTML dans la méthode........................ 238 Permettre le chaînage des méthodes................................. 239 Ajouter de nouvelles pseudo-classes..................................240 Créer de nouvelles pseudo-classes.................................241 Pseudo-classe sans paramètre..................................... 241 Pseudo-classe avec paramètre..................................... 243 Diffuser un plug-in...............................................245 Création du fichier du plug-in...................................245 Et si jquery ou $ n est plus accessible?.............................246

XVIII jquery 1.7 & jquery UI CHAPITRE 10 Objets Deferred... 249 Créer un objet Deferred...........................................249 Méthodes définies sur l objet Deferred................................249 Cycle de vie d un objet Deferred.....................................251 Fonctions de callback associées aux états de l objet Deferred...............253 Fonctions de callback associées aux notifications effectuées sur l objet Deferred...............................................254 Exemples d utilisation des fonctions de callback associées à l objet Deferred...256 Ajouter une fonction de callback sur l objet Deferred...................256 Transmettre des paramètres à la fonction de callback...................257 Un objet Deferred dans l état resolved ou rejected ne peut plus recevoir de nouvelles notifications.......................................258 Ajouter des fonctions de callback à l objet Deferred dans l état resolved ou rejected..................................................259 Objets Deferred liés à Ajax.........................................260 Objets Promise..................................................263 Créer un objet Promise à partir d un objet Deferred....................263 Créer un objet Promise à partir d un objet de classe jquery..............263 Ajouter des méthodes de traitement aux objets de classe jquery...........264 Synchroniser plusieurs objets Deferred avec $.when ()....................265 Utiliser les résultats fournis dans les fonctions de callback...............266 Synchronisation de deux appels Ajax...............................268 Utiliser les résultats des appels Ajax synchronisés dans les fonctions de callback....................................269 Exemple d utilisation des objets Deferred dans nos programmes.............................................270 CHAPITRE 11 Objets Callbacks... 273 Créer un objet Callbacks...........................................273 Méthodes définies sur l objet Callbacks...............................274 Options de création de l objet Callbacks...............................276 Utiliser le flag once............................................276 Utiliser le flag memory.........................................278 Utiliser le flag stoponfalse......................................281 Combiner plusieurs flags........................................283 Exemple d utilisation des objets Callbacks dans nos programmes...........284

Table des matières XIX CHAPITRE 12 Exemple d application utilisant jquery, Ajax et PHP... 287 Cinématique de l application.......................................287 Affichage de la liste des clients......................................290 Côté client (navigateur)........................................290 Côté serveur.................................................292 Ajout d une nouvelle ligne vierge à l affichage..........................292 Gestion de la modification du nom, du prénom ou du numéro de téléphone..293 Côté client (navigateur)........................................293 Côté serveur.................................................295 Gestion de la suppression d un client.................................297 Côté client (navigateur)........................................297 Côté serveur.................................................298 Application complète.............................................298 DEUXIÈME PARTIE jquery UI : pour des fonctionnalités graphiques avancées...305 CHAPITRE 13 Introduction à jquery UI... 307 Installation de jquery UI..........................................307 Aperçu de jquery UI.............................................308 Qu est-ce qu un un thème CSS?....................................309 Quels fichiers inclure dans nos pages HTML?.........................311 Fichiers non compressés........................................311 Fichiers JavaScript............................................. 311 Fichiers CSS.................................................. 312 Exemple de page HTML incluant les fichiers non compressés............. 312 Fichiers compressés...........................................313 Fichiers JavaScript............................................. 313 Fichiers CSS.................................................. 314 Exemple de page HTML incluant les fichiers compressés................ 314 Changer de thème CSS...........................................315 Et maintenant?.................................................316 CHAPITRE 14 Onglets... 317 Principe de base.................................................317

XX jquery 1.7 & jquery UI Mise en forme du contenu.........................................319 La méthode tabs ()...............................................321 tabs (options)................................................322 Options gérant les onglets........................................ 322 Options gérant les événements liés aux onglets........................ 322 tabs ("action", params).........................................323 Gestion des événements dans les onglets avec bind ()....................324 Exemples d utilisation des onglets...................................325 Création dynamique d onglets....................................325 Modifier le contenu d un onglet au moyen d Ajax.....................326 Exemple 1 : appel au serveur avec "url" et "load"....................... 326 Exemple 2 : ajouter des informations avec la propriété data de ajaxoptions.. 328 Utiliser les événements sur les onglets..............................329 Exemple 1 : utiliser l événement add................................ 329 Exemple 2 : événement tabsadd avec la méthode bind ()................. 331 CHAPITRE 15 Menus en accordéon... 333 Principe de base.................................................333 Mise en forme du contenu.........................................336 La méthode accordion ()...........................................338 accordion (options)............................................338 Options gérant les menus......................................... 339 Options gérant la hauteur du contenu des menus....................... 339 Options gérant les événements liés aux menus......................... 340 accordion ("action", params).....................................340 Gestion des événements dans les menus avec bind ().....................341 Exemples d utilisation des menus en accordéon.........................341 Ouvrir un menu quelconque.....................................341 Charger le contenu d un menu avec Ajax............................343 Exemple 1 : options.change et options.changestart...................... 343 Exemple 2 : accordionchange et accordionchangestart avec la méthode bind (). 344 CHAPITRE 16 Boîtes de dialogue... 347 Principe de base.................................................347 Mise en forme du contenu.........................................350 La méthode dialog ()..............................................352 dialog (options)..............................................352 Options gérant l aspect, la position et les dimensions de la fenêtre.......... 353

Table des matières XXI Options gérant les effets visuels sur la fenêtre......................... 353 Options gérant le comportement de la fenêtre......................... 354 Options gérant les événements dans la fenêtre......................... 355 dialog ("action", params)........................................356 Gestion des événements dans les boîtes de dialogue avec bind ()............357 Exemples d utilisation des boîtes de dialogue...........................357 Ouvrir et fermer une fenêtre.....................................357 Appliquer un effet à l ouverture ou à la fermeture de la fenêtre............358 Empêcher la fermeture de la fenêtre...............................360 Masquer le bouton de fermeture de la fenêtre........................360 Insérer des boutons dans la fenêtre................................361 Insérer un contenu au moyen d Ajax...............................363 Modifier le comportement d une fenêtre avec des effets.................365 CHAPITRE 17 Boutons... 369 Principe de base.................................................369 Mise en forme du contenu.........................................370 La méthode button ().............................................372 button (options)..............................................372 button ("action", params).......................................373 Gestion des événements sur les boutons avec bind ().....................374 Boutons radio...................................................374 Afficher des boutons radio......................................374 Améliorer l affichage avec buttonset ().............................376 Cases à cocher...................................................377 Afficher des cases à cocher......................................377 Améliorer l affichage avec buttonset ().............................378 Exemples d utilisation des boutons...................................379 Afficher des icônes dans les boutons...............................379 Créer une calculatrice..........................................382 Programme de base............................................. 382 Améliorer le programme......................................... 385 Gérer les clics sur les boutons radio................................389 CHAPITRE 18 Barres de progression... 393 Principe de base.................................................393 Mise en forme du contenu.........................................394 La méthode progressbar ().........................................396 progressbar (options)..........................................396

XXII jquery 1.7 & jquery UI progressbar ("action", params)....................................397 Gestion des événements dans les barres de progression avec bind ().........397 Exemples d utilisation des barres de progression........................397 Incrémenter de façon régulière une barre de progression................397 Effectuer un traitement à différentes étapes du remplissage..............399 CHAPITRE 19 Sliders... 401 Principe de base.................................................401 Mise en forme du contenu.........................................402 La méthode slider ()..............................................404 slider (options)...............................................404 Options gérant l aspect et le comportement des sliders................... 405 Options gérant les valeurs des curseurs............................... 405 Options gérant les événements sur le slider........................... 405 slider ("action", params)........................................406 Gestion des événements sur les sliders avec bind ()......................407 Exemples d utilisation des sliders....................................407 Afficher la valeur d un ou plusieurs curseurs.........................407 Régler l opacité d une image à l aide d un slider.......................410 CHAPITRE 20 Calendriers... 413 Principe de base.................................................413 Mise en forme du contenu.........................................415 La méthode datepicker ()..........................................417 datepicker (options)...........................................417 Options gérant l apparence et les effets visuels liés au calendrier........... 418 Options d internationalisation.................................... 419 Options gérant la sélection d une date dans le calendrier................. 421 Options gérant les événements sur le calendrier........................ 421 datepicker ("action", params)....................................422 Exemples d utilisation des calendriers................................423 Afficher plusieurs mois dans le calendrier...........................424 Afficher un calendrier statique...................................426 Indiquer des dates minimale et maximale...........................427 Interdire la sélection de certaines dates.............................428 Présélectionner une date........................................430 Effectuer une requête Ajax lors de la sélection d une date................432

Table des matières XXIII CHAPITRE 21 Autocomplétion... 435 Principe de base.................................................435 Mise en forme du contenu.........................................437 La méthode autocomplete ()........................................439 autocomplete (options).........................................439 Options gérant les listes de suggestions.............................. 440 Options gérant les événements dans la liste de suggestions............... 440 autocomplete ("action", params)..................................441 Gestion des événements sur les listes de suggestions avec bind ()...........442 Exemples d utilisation du mécanisme d autocomplétion..................442 Spécifier la largeur de la liste de suggestions.........................442 Afficher une liste de suggestions dès l ouverture de la page HTML........444 Afficher une liste de suggestions dès l entrée du curseur dans le champ de saisie.........................................445 Produire un effet lors de l apparition de la liste de suggestions............446 Créer dynamiquement la liste de suggestions.........................447 Créer dynamiquement la liste de suggestions en tenant compte de la saisie effectuée...........................................449 Appel Ajax pour un serveur PHP.................................. 449 Appel Ajax pour un serveur Ruby on Rails........................... 451 Insérer des images dans la liste de suggestions........................453 Pour un serveur PHP........................................... 455 Pour un serveur Ruby on Rails.................................... 457 CHAPITRE 22 Glisser-déposer (drag & drop)... 461 La méthode draggable ()...........................................461 draggable (options)............................................462 Options spécifiant les éléments déplaçables........................... 462 Options gérant les éléments déplaçables.............................. 462 Options gérant l effet à la fin du déplacement......................... 463 Options gérant les contraintes de déplacement......................... 464 Options gérant le défilement de la fenêtre lors du déplacement............ 464 Options gérant les événements sur les éléments déplaçables............... 465 draggable ("action", params).....................................466 Gestion des événements sur les éléments déplacés avec bind ().............466 Exemples d utilisation de la fonctionnalité de drag (glisser)................467 Effectuer un traitement lors du déplacement.........................467 Imposer des limites au déplacement...............................468

XXIV jquery 1.7 & jquery UI Contraindre le déplacement à un espace donné........................ 468 Contraindre le déplacement à l horizontale ou à la verticale.............. 469 Déplacer un objet en le dupliquant................................470 La méthode droppable ()...........................................475 droppable (options)...........................................475 Options gérant le comportement des éléments de dépôt................... 475 Options indiquant quels éléments peuvent être déposés.................. 476 Options gérant l apparence des éléments de dépôt....................... 476 Options gérant les événements sur les éléments de dépôt.................. 476 droppable ("action", params).....................................477 Gestion des événements sur les éléments de dépôt avec bind ().............478 Exemples d utilisation de la fonctionnalité de drop (déposer) : un panier d achats................................................479 Créer un panier d achats avec glisser-déposer.........................479 Ajouter un comportement au panier lors du dépôt.....................481 Retirer un élément du panier....................................483 CHAPITRE 23 Sélection multiple... 485 Principe de base.................................................485 Mise en forme du contenu.........................................487 La méthode selectable ()...........................................489 selectable (options)............................................490 Options gérant les éléments sélectionnés.............................. 490 Options gérant les événements sur les éléments sélectionnés............... 490 selectable ("action", params).....................................491 Gestion des événements lors de la sélection avec bind ()..................492 Exemples d utilisation du mécanisme de sélection.......................492 Afficher l ordre d apparition des événements lors de la sélection...........492 Empêcher la sélection d un élément...............................495 Inhiber le clic sur un élément pour le sélectionner.....................497 Gérer un panier d achats........................................498 CHAPITRE 24 Permutation d éléments dans la page... 501 Principe de base.................................................501 Mise en forme du contenu.........................................503 La méthode sortable ()............................................505 sortable (options).............................................505 Options spécifiant et gérant les éléments déplaçables.................... 505

Table des matières XXV Options spécifiant et gérant les éléments permutables................... 507 Options gérant la place laissée vide par l élément déplacé................ 507 Options gérant l effet à la fin du déplacement......................... 508 Options gérant les contraintes de déplacement......................... 508 Options gérant le défilement de la fenêtre lors du déplacement............ 509 Options gérant les événements sur les éléments permutables.............. 509 sortable ("action", params)......................................510 Gestion des événements lors de la permutation avec bind ()...............511 Exemples d utilisation du mécanisme de permutation....................512 Afficher l ordre d apparition des événements.........................512 Lors de la permutation dans une seule liste........................... 512 Lors de la permutation entre deux listes............................. 515 Déposer dans la liste un élément quelconque.........................518 Insérer des images dans une liste de titres............................ 518 Ajouter un traitement visuel...................................... 522 CHAPITRE 25 Redimensionnement... 527 Principe de base.................................................527 Mise en forme du contenu.........................................528 La méthode resizable ()............................................530 resizable (options)............................................531 Options gérant les éléments redimensionnables........................ 531 Options gérant l effet lors du redimensionnement...................... 532 Options gérant les événements sur l élément redimensionné.............. 533 resizable ("action", params)......................................534 Gestion des événements lors du redimensionnement avec bind ()...........534 Exemples d utilisation du mécanisme de redimensionnement..............534 Afficher les dimensions de l élément lors du redimensionnement..........534 Afficher la position de l élément lors du redimensionnement.............536 Effectuer une animation lors du redimensionnement...................537 Créer un champ de saisie redimensionnable.........................539 Saisie sur une seule ligne......................................... 539 Saisie multiligne............................................... 541 CHAPITRE 26 Effets visuels dans jquery UI... 543 De nouveaux effets avec la méthode effect (effectname, options, duration, callback).........................543 Effet blind..................................................544