jquery Simplifiez et enrichissez vos développements JavaScript 3 e édition Jonathan Chaffer Karl Swedberg Traduit par Hervé Soulard avec la contribution technique de Didier Mouronval
Pearson France a apporté le plus grand soin à la réalisation de ce livre afin de vous fournir une information complète et fiable. Cependant, Pearson France n assume de responsabilités, ni pour son utilisation, ni pour les contrefaçons de brevets ou atteintes aux droits de tierces personnes qui pourraient résulter de cette utilisation. Les exemples ou les programmes présents dans cet ouvrage sont fournis pour illustrer les descriptions théoriques. Ils ne sont en aucun cas destinés à une utilisation commerciale ou professionnelle. Pearson France ne pourra en aucun cas être tenu pour responsable des préjudices ou dommages de quelque nature que ce soit pouvant résulter de l utilisation de ces exemples ou programmes. Tous les noms de produits ou marques cités dans ce livre sont des marques déposées par leurs propriétaires respectifs. Publié par Pearson France 47 bis, rue des Vinaigriers 75010 PARIS Tél. : 01 72 74 90 00 www.pearson.fr ISBN : 978-2-7440-2525-9 Copyright 2012 Pearson France Tous droits réservés Titre original : Learning jquery, Third Edition, Create better interaction, design, and web development with simple JavaScript techniques Traduit de l américain par Hervé Soulard, avec la contribution technique de Didier Mouronval. ISBN original : 978-1-84951-654-9 Copyright 2011 Packt Publishing All rights reserved Édition originale publiée par Packt www.packtpub.com Aucune représentation ou reproduction, même partielle, autre que celles prévues à l article L. 122-5 2 et 3 a) du Code de la propriété intellectuelle ne peut être faite sans l autorisation expresse de Pearson France ou, le cas échéant, sans le respect des modalités prévues à l article L. 122-10 dudit code. Non part of this book may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying, recording or by any information storage retrieval system, without permission from Pearson Education, Inc.
Table des matières Avant-propos... À propos des auteurs... VII IX Préface... XI Organisation du livre... XI Prérequis... XIII Public du livre... XIII Historique du projet jquery... XIV Conventions typographiques... XV Votre avis... XVI Exemples... XVI 1. Premiers pas... 1 Intérêt de jquery... 1 Efficacité de jquery... 3 Première page web avec jquery... 4 JavaScript pur contre jquery... 10 Outils de développement... 11 En résumé... 14 2. Sélection d éléments... 15 Le DOM... 15 La fonction $()... 17 Sélecteurs CSS... 18 Sélecteurs personnalisés... 23 Méthodes de parcours du DOM... 28 Accéder aux éléments du DOM... 33 En résumé... 34 Exercices... 34 3. Gestion des événements... 35 Effectuer des tâches au chargement de la page... 35 Événements simples... 38 Événements composés... 47 Le périple d un événement... 50 Modifier le périple : l objet event... 52 Retirer un gestionnaire d événements... 59 Simuler une action de l utilisateur... 62
IV jquery En résumé... 66 Exercices... 67 4. Styles et animations... 69 Modifier les styles CSS... 69 Bases du masquage/affichage... 74 Effets et vitesse... 76 Créer des animations personnalisées... 80 Effets simultanés ou séquentiels... 85 En résumé... 93 Exercices... 93 5. Manipulation du DOM... 95 Manipuler des attributs... 95 Manipuler l arborescence du DOM... 100 Copier des éléments... 110 Méthodes d accès au contenu... 113 Les méthodes du DOM en bref... 116 En résumé... 118 Exercices... 118 6. Envoi et réception de données avec Ajax... 121 Charger des données à la demande... 121 Choisir le format de données... 135 Passer des données au serveur... 136 Réponses différentes pour les requêtes Ajax... 142 Surveiller la requête... 144 Gérer les erreurs... 147 AJAX et les événements... 148 Questions de sécurité... 149 Autres solutions... 152 En résumé... 156 Exercices... 157 7. Utilisation des plug-in... 159 Rechercher des plug-in et de l aide... 159 Utiliser un plug-in... 160 La bibliothèque jquery UI... 166 En résumé... 175 Exercices... 175 8. Développement de plug-in... 177 Utiliser l alias $... 177 Ajouter de nouvelles fonctions globales... 178 Ajouter des méthodes à l objet jquery... 183
Table des matières V Paramètres d une méthode... 186 La fabrique de widgets de jquery UI... 192 Recommandations sur la conception... 199 Distribuer un plug-in... 200 En résumé... 200 Exercices... 201 9. Techniques élaborées de sélection et de parcours... 203 Retour sur la sélection et le parcours... 203 Personnaliser et optimiser les sélecteurs... 211 Les coulisses du parcours du DOM... 216 En résumé... 223 Exercices... 224 10. Gestion élaborée des événements... 225 Retour sur les événements... 225 Délégation d événement... 229 Événements personnalisés... 233 Limitation des événements... 237 Événements spéciaux... 238 En résumé... 240 Exercices... 241 11. Effets élaborés... 243 Retour sur les animations... 243 Observer et interrompre des animations... 245 Propriétés d effet globales... 247 Easing sur plusieurs propriétés... 251 Objets différés... 252 En résumé... 255 Exercices... 256 12. Manipulation élaborée du DOM... 259 Trier les lignes d une table... 259 Retour sur le déplacement et l insertion d éléments... 262 Stocker des données au côté des éléments du DOM... 265 Utiliser les attributs data de HTML5... 271 Trier et construire des lignes avec JSON... 273 Manipulation élaborée des attributs... 278 En résumé... 282 Exercices... 282 13. Utilisation élaborée d Ajax... 283 Amélioration progressive avec Ajax... 283 Gérer les erreurs Ajax... 288
VI jquery L objet jqxhr... 290 Limiter les requêtes Ajax... 293 Étendre les possibilités Ajax... 294 En résumé... 303 Exercices... 304 Annexe A. Fermetures en JavaScript... 305 Fonctions internes... 305 Interactions entre fermetures... 309 Fermetures dans jquery... 310 Risques de fuites de mémoire... 315 En résumé... 318 Annexe B. Tests avec QUnit... 319 Télécharger QUnit... 319 Configurer le document... 320 Organiser les tests... 321 Ajouter et exécuter des tests... 322 Autres types de tests... 325 Considérations pratiques... 326 En résumé... 327 Annexe C. Référence rapide... 329 Expressions de sélection... 329 Méthodes de parcours du DOM... 332 Méthodes d événement... 335 Méthodes d effet... 339 Méthodes de manipulation du DOM... 341 Méthodes Ajax... 346 Objets différés... 348 Autres propriétés et fonctions... 349 Index... 351