FAQ jQuery - Developpez.com

La page est créée Virginie Dumas
 
CONTINUER À LIRE
FAQ jQuery

                              Date de publication : 14/02/2011

                              Dernière mise à jour : 16/02/2011

Cette FAQ a été réalisée pour répondre aux questions les plus fréquemment posées sur
le forum jQuery.

Nous tenons à souligner que cette FAQ ne garantit en aucun cas que les informations
qu'elle contient sont correctes ; les auteurs font le maximum, mais l'erreur est humaine.
Si vous trouvez une erreur, ou que vous souhaitez devenir rédacteur, lisez Comment
participer à cette FAQ ?.

Sur ce, on vous souhaite une bonne lecture.
Ont contribué à cette FAQ :

Sepia - dukej - Arnaud F. - Kerod - Bovino - danielhagnoul
- SpaceFrog - L'équipe JavaScript (JavaScript) - vermine -
FAQ jQuery

1.   Informations générales (4) .........................................................................................................................................................4
2.   Introduction (7) .......................................................................................................................................................................... 5
3.   Utilisation du DOM (13) .........................................................................................................................................................11
4.   Les formulaires (3) .................................................................................................................................................................. 26
5.   La gestion des évènements (1) ................................................................................................................................................29
6.   Requête Ajax (1) ..................................................................................................................................................................... 30
7.   Les objets (1) ........................................................................................................................................................................... 32
8.   Plugins (2) ................................................................................................................................................................................37
9.   Divers scripts utiles (2) ........................................................................................................................................................... 45

                                                                                  -3-
Les sources présentées sur cette pages sont libres de droits, et vous pouvez les utiliser à votre convenance. Par contre la page de présentation de ces sources
constitue une oeuvre intellectuelle protégée par les droits d'auteurs. Copyright © 2011 Developpez LLC. Tout droits réservés Developpez LLC. Aucune
reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez
LLC. Sinon vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérêts.
                                                                          http://javascript.developpez.com/faq/jquery/
FAQ jQuery

 Sommaire > Informations générales
                                                       Comment bien utiliser cette FAQ ?
Auteurs : vermine ,
 Le but
 Cette FAQ a été conçue pour être la plus simple possible d'utilisation. Elle tente d'apporter des réponses simples et
 complètes aux questions auxquelles ont souvent été confrontés les développeurs Web en JavaScript.
 L'organisation
 Les questions sont organisées par thème, rendant la recherche plus facile.
 Les réponses
 Les réponses peuvent être complétées de liens vers d'autres réponses, vers la documentation en ligne de Microsoft ou
 vers un autre site en rapport.
 Nouveautés et mises à jour
 Lors de l'ajout ou de la modification d'une question/réponse, un indicateur est placé à côté du titre de la question.
 Cet indicateur reste visible pour une durée de 15 jours afin de vous permettre de voir rapidement les modifications
 apportées.
 J'espère que cette FAQ pourra répondre à vos questions. N'hésitez pas à nous faire part de tous commentaires/
 remarques/critiques.

lien : Comment participer à cette FAQ ?

                                                       Comment participer à cette FAQ ?
Auteurs : vermine ,
 Cette FAQ est ouverte à toute collaboration. Pour éviter la multiplication des versions, il serait préférable que toute
 collaboration soit transmise aux administrateurs de la FAQ.
 Plusieurs compétences sont actuellement recherchées pour améliorer cette FAQ.
 Rédacteur : bien évidemment, toute nouvelle question/réponse est la bienvenue.
 Correcteur : malgré nos efforts, des fautes d'orthographe ou de grammaire peuvent subsister. Merci de contacter les
 administrateurs si vous en débusquez une... Idem pour les liens erronés.

lien : Quels sont les droits de reproduction de cette FAQ ?

                                         Quels sont les droits de reproduction de cette FAQ ?
Auteurs : vermine ,
 Merci de contacter les auteurs pour toute copie, intégrale ou partielle de ce document, voir Comment participer à cette
 FAQ ?.

lien : Comment participer à cette FAQ ?

                                                               Nous tenons à remercier
Auteurs : vermine ,
 L'ensemble de l'équipe des rédacteurs de www.developpez.com pour leurs remarques constructives. Ainsi que Bovino
 et Kerod pour leur confiance. Un grand merci à danielhagnoul pour son enthousiasme, ses relectures attentives et
 son implication au sujet de jQuery. Il me reste à remercier ClaudeLELOUP pour sa correction orthographique et sa
 méthode de travail efficace !

                                                                                  -4-
Les sources présentées sur cette pages sont libres de droits, et vous pouvez les utiliser à votre convenance. Par contre la page de présentation de ces sources
constitue une oeuvre intellectuelle protégée par les droits d'auteurs. Copyright © 2011 Developpez LLC. Tout droits réservés Developpez LLC. Aucune
reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez
LLC. Sinon vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérêts.
                                                              http://javascript.developpez.com/faq/jquery/
FAQ jQuery

 Sommaire > Introduction
                                                                Présentation de jQuery
Auteurs : Sepia , danielhagnoul , vermine ,
 jQuery est une bibliothèque (framework) JavaScript utilisée pour développer rapidement des applications Web et des
 pages HTML au travers d'un ensemble cohérent de fonctions et de méthodes permettant la gestion des événements,
 l'animation et la prise en charge des transactions asynchrones (Ajax) de plusieurs types avec un serveur.

 jQuery s'inscrit dans la liste des outils Javascript comme :

 •       Ext JS ;
 •       Prototype ;
 •       Dojo ;
 •       Mootools ;
 •       ...

 La bibliothèque est composée d'un fichier Javascript avec les méthodes de bases mais divers plugins (créés par la
 communauté) peuvent lui être ajoutés.
 jQuery propose également une gestion de conflit entre plusieurs scripts Javascript. Cependant, les possibilités offertes
 devraient suffir à ne pas mélanger plusieurs bibliothèques.

                                        Pourquoi dois-je utiliser une bibliothèque JavaScript ?
Auteurs : danielhagnoul ,
 [jQuery 1.5]
 JavaScript

       Le langage a été créé en 1995 par Brendan Eich pour le compte de Netscape Communications
       Corporation.
       JavaScript 1.5 : Interpréteur basé sur les spécifications ECMA-262 3e édition.
       Le langage actuellement à la version 1.7 est une implémentation du standard ECMA-262.
       La version 1.8 est en développement et intégrera des éléments du langage Python.
       La version 2.0 du langage est prévue pour intégrer la 4e version du standard ECMA.

 Le JavaScript n'est pas né conforme à une norme, il est le résultat d'une lente maturation. C'est dans l'anarchie qu'il fut
 implémenté dans les différents navigateurs. Les possibilités et les syntaxes évoluant à chaque nouvelle version, version
 implémentée par certains et ignorée par d'autres. Des biais de sa naissance et de son évolution, JavaScript a gardé une
 syntaxe permissive et des pratiques diverses.

 Les bibliothèques JavaScript
 Le but premier est de faciliter l'usage du JavaScript en permettant au développeur de faire abstraction des différentes
 implémentations du langage et des différents navigateurs sur lequels son code doit fonctionner.
 Une bibliothèque JavaScript se doit d'être pérenne, pour atteindre ce but elle doit répondre à plusieurs critères :

 •       une documentation de qualité ;
 •       une large communauté offrant un support de qualité ;
 •       un grand nombre de développeurs doivent l'utiliser quotidiennement ;
 •       un ratio performances/contraintes favorable ;
 •       une mise en oeuvre aisée ;
 •       l'adhésion d'acteurs de premier plan ;

                                                                                  -5-
Les sources présentées sur cette pages sont libres de droits, et vous pouvez les utiliser à votre convenance. Par contre la page de présentation de ces sources
constitue une oeuvre intellectuelle protégée par les droits d'auteurs. Copyright © 2011 Developpez LLC. Tout droits réservés Developpez LLC. Aucune
reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez
LLC. Sinon vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérêts.
                                                              http://javascript.developpez.com/faq/jquery/
FAQ jQuery

 •       un grand nombre de plug-ins et de widgets performants doivent être disponibles ;
 •       le projet doit être porté par une équipe ;
 •       le projet doit être dynamique et en évolution permanente.

 Il existe plusieurs bibliothèques JavaScript qui répondent au but premier et aux critères cités. Certaines veulent
 principalement faciliter l'usage du JavaScript alors que d'autres souhaitent également simplifier, modifier ou
 complexifier, au choix, le langage et son modèle objet.
 Quoi qu'en pensent certains, le JavaScript est un langage de programmation robuste et expressif. L'avenir lui appartient
 à la seule condition qu'il se libère de la contrainte des navigateurs obsolètes.

 jQuery
 Dynamique, en évolution rapide, ses performances et ses possibilités augmentent au fil des versions. Les critiques
 devraient revoir leurs arguments en fonction de ce qu'il est et deviendra et non en fonction de ce qu'ils en ont vu dans
 le passé.
 Au moment où j'écris, 2011-02-02, nous en somme à jQuery 1.5 et à jQuery UI 1.8.9, que de chemin parcouru par
 rapport au moment où je l'ai découvert à la version 1.2.6 vers la fin de l'année 2008. Il s'est amélioré sur tous les points
 et ses widgets ne sont pas en reste.

                                    Que dois-je connaître avant d'utiliser efficacement jQuery ?
Auteurs : danielhagnoul ,
 Efficacement ! La réponse facile c'est tout !
 À savoir les langages CSS, HTML, JavaScript et un langage serveur pour la partie serveur des transactions AJAX. En
 JavaScript, maîtriser la notation JSON (JavaScript Object Notation). Un bon niveau en programmation fonctionnelle,
 en programmation par objets et en programmation événementielle.
 On débute bien quelque part ? Oui, mais pas par le jQuery, encore moins par l'écriture d'un plug-in jQuery et encore
 moins par le jQuery UI !

 La réponse difficile : donner un ordre d'importance et le niveau requis.

 1       CSS. Un très bon niveau.
         •    C'est l'alpha et l'oméga de la compréhension des sélecteurs de jQuery.
         •    Tout en jQuery se fait par l'intermédiaire de sélecteurs qui, à l'exception du mot clé this, ne contiennent
              que du CSS et manipulent le DOM (Document Object Model).
 2       HTML. Un bon niveau.
         •    Structure d'une page HTML. Appel des fichiers de styles et des fichiers JavaScript.
         •    Apprendre à écrire une page web sans utiliser un langage serveur !
         •    Il n'y a pas de langage serveur ici ! Une page web, lorsqu'elle est diffusée sur l'Internet ne contient jamais
              aucune instruction en langage serveur car le serveur les a transformées en code HTML valide, pour autant
              que vos instructions en langage serveur soient valides ce qui est loin d'être toujours le cas.
 3       JavaScript. Niveau débutant expérimenté.
         •    La connaissance des instructions du langage.
         •    Le JavaScript manipule le DOM (Document Object Model) et jQuery n'est rien d'autre qu'une
              bibliothèque (framework) JavaScript, donc à connaître.
         •    Avoir construit des programmes qui utilisent les fonctions, les objets et les événements.
         •    Tout est objet et peut être manipulé comme tel en JavaScript. Savoir comment créer et manipuler un objet
              et son prototype.
         •    Savoir utiliser la notation JSON (JavaScript Object Notation). Création et manipulation d'objets.
         •    Avoir de très bonnes notions en programmation événementielle. Une page web, du point de vue de
              l'utilisateur, est devenue un endroit où l'on clique à tout propos. Savoir comment répondre aux souhaits
              de l'utilisateur.
 4       Un langage serveur. Niveau débutant expérimenté.

                                                                                  -6-
Les sources présentées sur cette pages sont libres de droits, et vous pouvez les utiliser à votre convenance. Par contre la page de présentation de ces sources
constitue une oeuvre intellectuelle protégée par les droits d'auteurs. Copyright © 2011 Developpez LLC. Tout droits réservés Developpez LLC. Aucune
reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez
LLC. Sinon vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérêts.
                                                              http://javascript.developpez.com/faq/jquery/
FAQ jQuery

         •      Savoir recueillir et manipuler les données transmises par une requête HTTP XMLHttpRequest.
         •      Savoir construire et envoyer la réponse sous forme de données JSON ou XML.

                                                Comment installer la bibliothèque jQuery ?
Auteurs : danielhagnoul ,
 [jQuery 1.4.4]
 jQuery MIT License : jQuery MIT License
 jQuery GPL License : jQuery GPL License

 I) jQuery Code Server

 http://code.jquery.com/jquery.js est la dernière version officielle disponible non compressée (minified, abréviation min).
 http://code.jquery.com/jquery-X.Y.Z.js est une version précise et non compressée.

 II) Je fais confiance à Google : http://code.google.com/intl/fr/apis/ajaxlibs/documentation/index.html#jquery
 a) AJAX Libraries API, vous devez demander une clé API (gratuite)

         google.load("jQuery", "1.4.2");

         $(function(){
             // votre code
         });
     
 b) J'utilise le service sans demander une clé API (plus lent ?)

         $(function(){
              // votre code
         });
     
                                                           Où dois-je placer mon code ?
Auteurs : danielhagnoul ,
 [jQuery 1.5]
 Toujours dans un fichier JavaScript séparé du fichier HTML.
 Ne vous laissez pas influencer par les exemples du forum ou d'autres qui placent le code JavaScript dans la page HTML
 uniquement pour des raisons de concision et de facilité. En production, conserver un fouillis CSS, HTML et JavaScript
 dans le même fichier est un non-sens du point de vue de la maintenance de votre code.
 L'ordre d'incorporation de vos fichiers JavaScript dans la page HTML est d'une importance capitale.
 Si vous travaillez comme il se doit en fractionnant votre code JavaScript en modules et composants, vous savez que tel
 module ou tel composant ne peut fonctionner si tel autre module ou tel autre composant n'est pas chargé le premier.
 Il en va de même dans le monde jQuery.

                                                                                  -7-
Les sources présentées sur cette pages sont libres de droits, et vous pouvez les utiliser à votre convenance. Par contre la page de présentation de ces sources
constitue une oeuvre intellectuelle protégée par les droits d'auteurs. Copyright © 2011 Developpez LLC. Tout droits réservés Developpez LLC. Aucune
reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez
LLC. Sinon vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérêts.
                                                              http://javascript.developpez.com/faq/jquery/
FAQ jQuery

 Exemple complexe non fonctionnel, utilisant jQuery, jQuery UI, un plug-in et votre fichier monCode.js. N'oubliez pas
 de renseigner quel codage des caractères a été utilisé pour chaque fichier. À l'ouverture d'un fichier, tout bon IDE doit
 vous indiquer le codage de caractère qui a été utilisé. Les fichiers du package jQuery UI 1.8.9 sont au format "utf-8".

      Exemple, non fonctionnel, pour l'incorporation des fichiers jQuery
      
       Un mot pour remplir.
      
                                                       Qu'est-ce que la notion de Ready ?
Auteurs : vermine ,
 Contrairement à d'autres frameworks, jQuery propose un gestionnaire d'évènements qui détermine précisément quand
 le DOM est fonctionnel. Il s'apparente au onload qui vérifie que tous les éléments d'une page sont chargés.

 Dans l'exemple ci-dessous, l'alerte se lancera lorsque le DOM sera entièrement parsé :

     $(document).ready(function(){
         alert('Dom est prêt!');
     });

 Cela vous permet de savoir quand vous pouvez effectivement manipuler l'arbre DOM. On ne parle bien entendu pas
 des images et d'autres éléments qui apparaissent après.

                                                              Où dois-je poser mon $ ?
Auteurs : danielhagnoul ,
 [jQuery 1.4.2]
 Entre deux balises :

      $ 

 Le symbole $ est la forme abrégée du mot clé jQuery. Ces deux lignes de code sont équivalentes :

     $("p").css("color", "red");

                                                                                  -8-
Les sources présentées sur cette pages sont libres de droits, et vous pouvez les utiliser à votre convenance. Par contre la page de présentation de ces sources
constitue une oeuvre intellectuelle protégée par les droits d'auteurs. Copyright © 2011 Developpez LLC. Tout droits réservés Developpez LLC. Aucune
reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez
LLC. Sinon vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérêts.
                                                              http://javascript.developpez.com/faq/jquery/
FAQ jQuery

     jQuery("p").css("color", "red");

     $(document).ready(function(){ ... });

 a pour forme abrégée

     $(function(){ ... });

 Cette fonction anonyme sera exécutée dès que la structure du DOM de la page web aura été construite. Dans 98 % des
 cas, c'est le bon endroit pour vos appels de codes jQuery et vos instructions événementielles.
 Dans 2 % des cas, il faut attendre la fin de la construction et de l'affichage de la page web. L'exemple d'utilisation le
 plus courant est le lancement d'une animation qui dépend du bon affichage de tous les éléments (principalement les
 images) de la page web.
 On utilise alors

     $(window).load(function(){ ... });

 qui n'a pas de forme abrégée.

       Ces pourcentages sont le résultat d'une estimation très personnelle.

 On écrira donc, par exemple :

     function ajoute(i, j){
       return i + j;
     }

     $(function(){
      $("body").append("ajoute(3, 4) = " + ajoute(3, 4) + "");

       $("p").mouseenter(function(){
        $(this).css("color", "red");
       });

      $("p").mouseleave(function(){
       $(this).css("color", "black");
      });
     });

 S'il vous prend l'idée bizarre d'utiliser plus d'une bibliothèque JavaScript en même temps, il faut écrire :

     jQuery.noConflict();

     jQuery(function($){ ... });

 Vous pourrez ainsi continuer à utiliser le symbole $ à l'intérieur de la fonction anonyme.
 Pour vos autres codes jQuery, vous pouvez les placer dans une clôture jQuery :

     (function($){ ... })(jQuery);

 Exemple :

     // cette clôture jQuery ayant normalement sa place dans un fichier JavaScript
     (function($){
      ajoute = function(i, j){
       return i + j;

                                                                                  -9-
Les sources présentées sur cette pages sont libres de droits, et vous pouvez les utiliser à votre convenance. Par contre la page de présentation de ces sources
constitue une oeuvre intellectuelle protégée par les droits d'auteurs. Copyright © 2011 Developpez LLC. Tout droits réservés Developpez LLC. Aucune
reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez
LLC. Sinon vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérêts.
                                                              http://javascript.developpez.com/faq/jquery/
FAQ jQuery

       }

       modifie = function(id){
        var obj = $("#"+id);

       obj.css("color", "black");
      };
     })(jQuery);

     jQuery.noConflict();

     jQuery(function($){
      $("body").append("ajoute(3, 4) = " + ajoute(3, 4) + "");

       $("p").mouseenter(function(){
        $(this).css("color", "red");
       });

      $("p").mouseleave(function(){
       modifie(this.id);
      });
     });

                                                                                 - 10 -
Les sources présentées sur cette pages sont libres de droits, et vous pouvez les utiliser à votre convenance. Par contre la page de présentation de ces sources
constitue une oeuvre intellectuelle protégée par les droits d'auteurs. Copyright © 2011 Developpez LLC. Tout droits réservés Developpez LLC. Aucune
reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez
LLC. Sinon vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérêts.
                                                              http://javascript.developpez.com/faq/jquery/
FAQ jQuery

 Sommaire > Utilisation du DOM
                        Comment puis-je sélectionner un élément à l'aide d'une classe ou d'un id ?
Auteurs : danielhagnoul ,
 [jQuery 1.4.2]
 Ce code sélectionne un élément d'id "monID" :

     $("#monID");

       Un id doit être unique !

 Ce code sélectionne tous les éléments ayant la classe "maClasse" :

     $(".maClasse");

 Habituellement, les éléments sélectionnés sont utilisés par d'autres fonctions jQuery :

     // récupère la valeur d'un élément input ou select
     var myValue = $("#monID").val();

     // définit la valeur d'un élément input ou select
     $("#monID").val("Bonjour");

                              Comment puis-je vérifier si un élément a une classe en particulier ?
Auteurs : danielhagnoul ,
 [jQuery 1.4.2]
 Vous pouvez utiliser la fonction hasClass() ou la fonction is().
 Exemple n° 1
 Si l'élément d'id "monID" a la classe "maClasse" alors le montrer en passant la propriété CSS display de none à bloc :

     if ($("monID").is(".maClasse")){
        $(this).show();
     }

 Exemple n° 2
 Lors d'un clic sur une division, si la division a la classe "maClasse" alors colorer le texte en rouge et animer la division
 en l'agrandissant vers la gauche de 100px puis en la diminuant vers la droite de 100px.

     $("div").click(function(){
      // Pour accélérer le traitement de la fonction.
      // Le traitement d'un sélecteur est une opération coûteuse.

       var obj = this;

      if (obj.hasClass("maClasse")){
        obj
         .css("color","red")
         .animate({left: "+=100px"}, "slow")
         .animate({left: "-=100px"}, "slow");
      }
     });

                                                                                 - 11 -
Les sources présentées sur cette pages sont libres de droits, et vous pouvez les utiliser à votre convenance. Par contre la page de présentation de ces sources
constitue une oeuvre intellectuelle protégée par les droits d'auteurs. Copyright © 2011 Developpez LLC. Tout droits réservés Developpez LLC. Aucune
reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez
LLC. Sinon vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérêts.
                                                              http://javascript.developpez.com/faq/jquery/
FAQ jQuery

 La durée de cette animation est réglée par le paramètre slow qui pourrait être remplacé par une durée exprimée en
 millisecondes, par exemple :

     .animate({left: "-=100px"}, 3000);

                                             Comment puis-je vérifier si un élément existe ?
Auteurs : danielhagnoul ,
 [jQuery 1.5]
 Un sélecteur retourne toujours un objet jQuery, c'est la raison pour laquelle on peut chaîner les instructions.
 Mais un sélecteur peut être traité comme un tableau (array) pour retrouver l'élément du DOM et on peut donc vérifier
 de combien d'éléments il est composé.
 Exemple : si le nombre d'éléments du DOM ayant la classe "maClasse" est positif, ajoutez à ces éléments la classe
 "monAutreClasse".

     if ($(".maClasse").length > 0){
         $(".maClasse").addClass(".monAutreClasse");
     }

 On peut sélectionner un élément par son numéro d'index.
 Exemple : retrouver le type de l'élément DOM, ici [object HTMLDivElement]

     $("#conteneur").click(function(){
         var nodeType = $(this)[0];
         alert(nodeType);
     });

       Si l'élément n'existe pas, jQuery ne fait rien et aucune erreur n'est signalée.

                                 Comment puis-je déterminer si un élément est visible ou non ?
Auteurs : danielhagnoul ,
 [jQuery 1.4.2]
 Le sélecteur :hidden sélectionne tous les éléments qui sont cachés.
 Le sélecteur :visible sélectionne tous les éléments qui sont visibles.
 Exemple : sélectionner tous les éléments :hidden ayant la classe "maClass" et changer la taille du texte contenu dans
 ces éléments.

     $(".maClass:hidden").css("fontSize", "2.4em");

 Nota Bene :
 Pour améliorer la rapidité d'exécution, la définition d'un élément visible ou caché a été profondément modifiée.
 Avant jQuery 1.3.2, un élément est visible si la propriété CSS display n'est pas none, si la propriété CSS visibility n'est
 pas hidden, et son type (input) n'est pas hidden.
 En jQuery 1.3.2 et après, un élément est visible si la propriété offsetWidth ou la propriété offsetHeight est supérieure à 0.
 Les éléments sont considérés :hidden pour plusieurs raisons :

 •       ils ont une valeur d'affichage nulle ;
 •       ils sont des éléments de formulaire de type hidden ;
 •       leur largeur et leur hauteur sont explicitement mises à 0 ;

                                                                                 - 12 -
Les sources présentées sur cette pages sont libres de droits, et vous pouvez les utiliser à votre convenance. Par contre la page de présentation de ces sources
constitue une oeuvre intellectuelle protégée par les droits d'auteurs. Copyright © 2011 Developpez LLC. Tout droits réservés Developpez LLC. Aucune
reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez
LLC. Sinon vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérêts.
                                                              http://javascript.developpez.com/faq/jquery/
FAQ jQuery

 •       un élément ancêtre est caché, l'élément n'est pas affiché sur la page ;
 •       un élément est supposé être caché si lui ou l'un de ses parents ne consomme pas d'espace dans le document.

 La propriété CSS visibility n'est donc pas prise en compte, car l'élément consomme de l'espace dans le document.

      alert($(this).css("visibility", "hidden").is(":hidden"));

 Cette alerte retourne false !

                                          Comment puis-je activer ou désactiver un élément ?
Auteurs : danielhagnoul ,
 [jQuery 1.4.2]
 On désactive un élément du DOM en attribuant la valeur disabled à l'attribut CSS disabled.
 Pour désactiver :

      $("#monID").attr("disabled","disabled");

 Pour activer :

      $("#monID").attr("disabled", "");

 ou

      $("#monID").removeAttr("disabled");

 Comment puis-je remplacer une partie du texte d'un ou de plusieurs éléments dans une liste d'éléments ?
Auteurs : danielhagnoul ,
 [jQuery 1.4.2]
 La liste d'éléments :

       liste,                 item    1
       liste,                 item    2
       liste,                 item    3
       liste,                 item    4
       liste,                 item    5
      
 Exemple 1
 On crée un objet jQuery qui représente, dans la liste d'id maListeID, les éléments enfants a du troisième élément li.

      var obj = $("#maListeID").children("li").eq(2).children("a");

 Le texte de l'objet est remplacé par le texte modifié, replace() est une fonction JavaScript.

      obj.text(obj.text().replace("liste", "liste de signets"));

 Exemple 2

                                                                                 - 13 -
Les sources présentées sur cette pages sont libres de droits, et vous pouvez les utiliser à votre convenance. Par contre la page de présentation de ces sources
constitue une oeuvre intellectuelle protégée par les droits d'auteurs. Copyright © 2011 Developpez LLC. Tout droits réservés Developpez LLC. Aucune
reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez
LLC. Sinon vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérêts.
                                                              http://javascript.developpez.com/faq/jquery/
FAQ jQuery

 On crée un objet jQuery qui représente, dans la liste d'id maListeID, les éléments enfants a des éléments li n° 4 et 5.

     var obj = $("#maListeID").children("li:gt(2)").children("a");

 Le texte de chaque objet est remplacé par le texte modifié

     $.each(obj, function(i, item){
      $(item).text($(item).text().replace("item","élément n°"));
     });

 On peut également l'écrire sous cette forme :

     $("#maListeID").children("li:gt(2)").children("a").each(function(i, item){
      $(item).text($(item).text().replace("item","élément n°"));
     });

 Description des sélecteurs

 •       .children() -- cherche parmi les enfants de l'élément parent (un niveau du DOM)
 •       .find() -- cherche parmi les descendants de l'élément parent (plusieurs niveaux du DOM)
 •       .eq(n) ou :eq(n) -- sélectionne l'élément numéro n (base zéro)
 •       .eq(-n) ou :eq(-n) -- sélectionne l'élément numéro length-n (base zéro)
 •       .first() ou :first -- idem eq(0)
 •       .last() ou :last -- idem eq(-1)
 •       :even -- sélectionne les éléments impairs : 1, 3, 5, 7, ...
 •       :odd -- sélectionne les éléments pairs : 2, 4, 6, 8, ...
 •       :gt(n) -- sélectionne tous les éléments supérieurs à n (base zéro)
 •       :lt(n) -- sélectionne tous les éléments inférieurs à n (base zéro)
 •       :nth-child(n) -- sélectionne l'élément numéro n (base un)
 •       :first-child -- idem :nth-child(1) sélectionne l'élément numéro 1 (base un)
 •       :last-child -- idem :nth-child(length) sélectionne l'élément numéro length (base un)
 •       :only-child -- sélectionne l'élément unique ou rien si l'élément parent a plusieurs enfants

 Nota Bene :

 •       Pour un DOM complexe, vous pouvez accélérer votre programme en utilisant le sélecteur de recherche
         approprié, par exemple children au lieu de find.
 •       Évitez d'écrire un sélecteur abrégé, exemple $("#maListeID li:eq(2) a"). Depuis la version 1.4.0, jQuery
         transforme un sélecteur abrégé en « forme longue » avant de l'exécuter, soit une perte de temps et une source
         d'erreur.

                                    Comment puis-je changer l'ordre des éléments d'une liste ?
Auteurs : danielhagnoul ,
 [jQuery 1.5]
 Exemple avec une liste de sélection multiple et en utilisant appendTo(), insertAfter(), insertBefore() et clone() :

      Forum jQuery

                                                                                 - 14 -
Les sources présentées sur cette pages sont libres de droits, et vous pouvez les utiliser à votre convenance. Par contre la page de présentation de ces sources
constitue une oeuvre intellectuelle protégée par les droits d'auteurs. Copyright © 2011 Developpez LLC. Tout droits réservés Developpez LLC. Aucune
reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez
LLC. Sinon vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérêts.
                                                              http://javascript.developpez.com/faq/jquery/
FAQ jQuery

        body { background-color:#dcdcdc; color:#000000; font-family:sans-serif;
        font-size:medium; font-style:normal; font-weight:normal; line-height:normal;
        letter-spacing:normal; }
        h1,h2,h3,h4,h5 { font-family:serif; }
        div,p,h1,h2,h3,h4,h5,h6,ul,ol,dl,form,table,img { margin:0px; padding:0px; }
        h1 { font-size:2em; text-shadow: 4px 4px 4px #bbbbbb; text-align:center; }
        p { padding:6px; }
        div#conteneur { width:95%; min-width:800px; min-height:500px; margin:12px auto;
        background-color:#FFFFFF; color:#000000; border:1px solid #666666; }

       /* TEST */
       #selectID {
         width: 200px;
       }
      
      Forum jQuery
      
         Option n° 1
         Option n° 2
         Option n° 3
         0ption n° 4
         Option n° 5
         Option n° 6
        
        /*
         * Pour parcourir tous les éléments de la liste
         */
        var selectList = function(id){
         $("#"+id).children("option").each(function(i, item){
           console.log($(item).val(), $(item).text());
         });
        };

        /*
         * Pour parcourir tous les éléments sélectionnés de la liste
         */
        var selectedList = function(id){
         $("#"+id).children("option:selected").each(function(i, item){
           console.log($(item).val(), $(item).text());
         });
        };

        $(function(){
         selectList("selectID");

          var obj = $("#selectID");

          // déplacer le premier élément en dernière position
          obj.children("option:first").appendTo(obj);

          // déplacer le premier élément en troisième position
          obj.children("option:first").insertAfter(obj.children("option").eq(2));

          // copier le cinquième élément en première position
          obj.children("option:eq(4)").clone().insertBefore(obj.children("option:first"));

          // modifier la valeur de l'élément cloné
          obj.children("option:first").val("opt 7");

                                                                                 - 15 -
Les sources présentées sur cette pages sont libres de droits, et vous pouvez les utiliser à votre convenance. Par contre la page de présentation de ces sources
constitue une oeuvre intellectuelle protégée par les droits d'auteurs. Copyright © 2011 Developpez LLC. Tout droits réservés Developpez LLC. Aucune
reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez
LLC. Sinon vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérêts.
                                                              http://javascript.developpez.com/faq/jquery/
FAQ jQuery

        console.log("------------------");
        selectList("selectID");
       });
      
       clone(true) permet de copier la totalité des données (data) et des événements associés à un
       élément du DOM.
       Remarque à ce propos ici.

                                Est-il toujours utile de tester la longueur d'un sélecteur jQuery ?
Auteurs : dukej ,
 [jQuery 1.4.4]
 Exemple :

     if ($(".maclasse").length > 0) {
        $(".maclasse").css('color','blue');
     }

 Pour cet usage, non ! Le sélecteur est un objet jQuery qui peut être manipulé comme un "array" d'objets. Si le tableau
 est vide, jQuery n'exécute pas la méthode demandée.
 Il suffit donc d'écrire :

     $(".maclasse").css('color','blue');

                                        Quelle différence y a-t-il entre $(...)[0] et $(...).eq(0) ?
Auteurs : danielhagnoul ,
 [jQuery 1.4.4]
 La différence est très importante et elle est souvent mal comprise.
 Un sélecteur retourne toujours un objet jQuery, c'est la raison pour laquelle on peut chaîner les instructions.
 Mais un sélecteur peut être traité comme un tableau (array) pour retrouver l'élément du DOM et, par exemple, utiliser
 les propriétés et méthodes du JavaScript qui n'ont pas d'équivalent dans le langage jQuery.
 Exemple :

      Choix n° 1
      Choix n° 2
      Choix n° 3
      Choix n° 4
      Choix n° 5
     
     $(function(){
      // Nous utiliserons Firebug pour examiner le résultat de nos codes

       // $(...) = [object Object]
       console.log("$(...) = " + $("#choix"));

       // $(...).eq(0) = [object Object]
       console.log("$(...).eq(0) = " + $("#choix").eq(0));

                                                                                 - 16 -
Les sources présentées sur cette pages sont libres de droits, et vous pouvez les utiliser à votre convenance. Par contre la page de présentation de ces sources
constitue une oeuvre intellectuelle protégée par les droits d'auteurs. Copyright © 2011 Developpez LLC. Tout droits réservés Developpez LLC. Aucune
reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez
LLC. Sinon vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérêts.
                                                              http://javascript.developpez.com/faq/jquery/
FAQ jQuery

       // $(...)[0] = [object HTMLSelectElement]
       console.log("$(...)[0] = " + $("#choix")[0]);

       $("#choix").children().eq(2).css("color", "red");

       // $("#choix").children().eq(2) = [object Object]
       console.log('$("#choix").children().eq(2) = ' + $("#choix").children().eq(2));

       // eq(2) est la troisième option, valeur 3
       console.log($("#choix").children().eq(2).val());

       // $("#choix").children()[4] = [object HTMLOptionElement]
       console.log('$("#choix").children()[4] = ' + $("#choix").children()[4]);

       // $("#choix").children()[4].tagName = OPTION
       console.log('$("#choix").children()[4].tagName = ' + $("#choix").children()[4].tagName);

      // $("#choix").children().eq(4).tagName = undefined
      // undefined car l'objet jQuery n'a pas une propriété tagName
      console.log('$("#choix").children().eq(4).tagName = ' + $("#choix").children().eq(4).tagName);
     });

                                           Comment puis-je réaliser une itération en jQuery ?
Auteurs : danielhagnoul , SpaceFrog , Arnaud F. ,
 [jQuery 1.4.3]
 1) En utilisant each()
 Cette méthode parcourt tous les éléments d'une sélection, et exécute une fonction pour chacun d'eux. La fonction reçoit
 automatiquement l'index de l'élément courant et l'élément DOM lui-même comme arguments.
 On peut dénommer l'index et l'élément du DOM comme l'on veut. Personnellement je respecte la convention suivante :
 i, j, k, m, et n pour l'index ; item, jtem, ktem, mtem, ntem pour l'élément du DOM. Je retrouve ainsi plus facilement
 qui est quoi et à quel niveau il se situe dans les itérations imbriquées.

     $("p").each(function(i, item) {
         console.log(i, item);
     });

 $("p").each() parcourt les éléments du DOM qui font partie du sélecteur jQuery. La fonction de rappel est lancée dans
 le contexte de l'élément DOM en cours, de sorte que le mot-clé this fait référence à l'élément.
 Lorsqu'une condition est remplie, vous pouvez sortir de l'itération par un return false;.
 Un return true; est équivalent à l'instruction "continue" dans une boucle for, on passe immédiatement à l'itération
 suivante.

     $("p").each(function(i, item) {
         if (i > 20){
             return false;
         } else {
             console.log(i, item);
         }
     });

 2) $.each(collection, function(i, item){ ... });
 Cet itérateur générique peut être utilisé sur des objets et des tableaux.
 Les tableaux et les objets de type tableau sont parcourus en suivant l'index, de 0 à length-1.

     $.each([52, 97], function(i, item) {
       console.log(i, item);
     });

                                                                                 - 17 -
Les sources présentées sur cette pages sont libres de droits, et vous pouvez les utiliser à votre convenance. Par contre la page de présentation de ces sources
constitue une oeuvre intellectuelle protégée par les droits d'auteurs. Copyright © 2011 Developpez LLC. Tout droits réservés Developpez LLC. Aucune
reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez
LLC. Sinon vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérêts.
                                                              http://javascript.developpez.com/faq/jquery/
FAQ jQuery

 Les autres objets sont parcourus en suivant l'ordre de leurs propriétés nommées.

     var map = {
        'flammable': 'inflammable',
        'duh': 'no duh'
     };

     $.each(map, function(key, value){
       console(key, value);
     });

 3) Exemples
 Exemple 1 :

     var chaine ="un;deux;trois;quatre;cinq;six"
     var tab = chaine.split(';')

     $.each(tab, function(i, item){
      console.log(i, item);
     });

 Exemple 2 :

     var obj = {
      un:{
        en:'one',
        de:'ein'
      },
      deux:{
        en:'two',
        de:'zwei'
      },
      trois:{
        en:'three',
        de:'drei'
      }
     };

     $.each(obj, function(i, item){
      console.log(i, item.en, item.de);
     });

 Exemple 3 :

     var doo = {
      truc: function(param){
        console.log(param);
      },
      machin: function(param){
        console.log("encore\n" + param);
      }
     };

     $.each(doo, function(i, item){
      console.log(i, item);
      item("bonjour");
     });

 Exemple 4 :

     var doo = {
      jules: function(key, param){

                                                                                 - 18 -
Les sources présentées sur cette pages sont libres de droits, et vous pouvez les utiliser à votre convenance. Par contre la page de présentation de ces sources
constitue une oeuvre intellectuelle protégée par les droits d'auteurs. Copyright © 2011 Developpez LLC. Tout droits réservés Developpez LLC. Aucune
reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez
LLC. Sinon vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérêts.
                                                              http://javascript.developpez.com/faq/jquery/
FAQ jQuery

        console.log(param + ' ' + key);
      },
      roger: function(key, param){
        console.log(param + '\n' + key);
      }
     };

     $.each(doo, function(i, item){
      console.log(i, item);
      item(i, 'bonjour');
     });

 Exemple 5 :

     var b = {
      one: 1,
      two: 2,
      three: 3
     };

     // On ajoute les méthodes getFirst et getLast à l'objet b

     $.each(["First", "Last"], function(i, item) {
      b["get" + item] = function() {
       console.log(this[(item == "First") ? "one" : "three"]);
      };
     });

     b.getFirst(); // alert 1
     b.getLast(); // alert 3

     console.log(b);

              Comment puis-je manipuler plusieurs attributs d'un élément du DOM en même temps ?
Auteurs : danielhagnoul ,
 [jQuery 1.5]
 Exemple :

      Forum jQuery
      
       /* Base */
       body { background-color:#dcdcdc; color:#000000; font-family:sans-serif;
       font-size:medium; font-style:normal; font-weight:normal; line-height:normal;
       letter-spacing:normal; }
       h1,h2,h3,h4,h5 { font-family:serif; }
       div,p,h1,h2,h3,h4,h5,h6,ul,ol,dl,form,table,img { margin:0px; padding:0px; }
       h1 { font-size:2em; text-shadow: 4px 4px 4px #bbbbbb; text-align:center; }
       p { padding:6px; }
       div#conteneur { width:95%; min-width:800px; min-height:500px; margin:12px auto;
       background-color:#FFFFFF; color:#000000; border:1px solid #666666; }

        /* Test */
        a {
         display:block;
         width:300px;
         height:20px;

                                                                                 - 19 -
Les sources présentées sur cette pages sont libres de droits, et vous pouvez les utiliser à votre convenance. Par contre la page de présentation de ces sources
constitue une oeuvre intellectuelle protégée par les droits d'auteurs. Copyright © 2011 Developpez LLC. Tout droits réservés Developpez LLC. Aucune
reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez
LLC. Sinon vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérêts.
                                                              http://javascript.developpez.com/faq/jquery/
FAQ jQuery

         margin-bottom:6px;
       }
       a.principale {
         background-color:lightyellow;
       }
      
      FAQ jQuery
      
       Page index de MonCaEx
       Page index de MonCaEx
       Page index de MonCaEx
       Page index de MonCaEx
       Page index de MonCaEx
      
       $(function(){
         $("#conteneur a:eq(2)").attr({
          "id": "juliaID",
          "class": "principale",
          "target": "_blank",
          "href": function(){
           var obj = $(this);
           obj.text("Les ensembles de Julia en JavaScript !");
           return obj.attr("href") + "/bacasable/julia.php";
          },
          "title": "Pour le fun !",
          "alt": "Les ensembles de Julia en JavaScript !"
         });
       });
       
                        Comment puis-je établir un lien permanent entre deux éléments du DOM ?
Auteurs : danielhagnoul ,
 [jQuery 1.5]
 On peut utiliser les événements, un élément du DOM attendant l'événement déclenché par un autre élément du DOM.
 Mais on peut stocker la référence d'un élément du DOM dans les données d'un autre élément du DOM
 Exemple :

      Forum jQuery
      
       /* Base */
       body { background-color:#dcdcdc; color:#000000; font-family:sans-serif;
       font-size:medium; font-style:normal; font-weight:normal; line-height:normal;
       letter-spacing:normal; }
       h1,h2,h3,h4,h5 { font-family:serif; }
       div,p,h1,h2,h3,h4,h5,h6,ul,ol,dl,form,table,img { margin:0px; padding:0px; }
       h1 { font-size:2em; text-shadow: 4px 4px 4px #bbbbbb; text-align:center; }
       p { padding:6px; }
       div#conteneur { width:95%; min-width:800px; min-height:500px; margin:12px auto;
       background-color:#FFFFFF; color:#000000; border:1px solid #666666; }

        /* Test */

                                                                                 - 20 -
Les sources présentées sur cette pages sont libres de droits, et vous pouvez les utiliser à votre convenance. Par contre la page de présentation de ces sources
constitue une oeuvre intellectuelle protégée par les droits d'auteurs. Copyright © 2011 Developpez LLC. Tout droits réservés Developpez LLC. Aucune
reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez
LLC. Sinon vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérêts.
                                                              http://javascript.developpez.com/faq/jquery/
FAQ jQuery

       div.exemple {
         width:100px;
         height:100px;
         margin:12px;
         margin-top:400px;
         padding:6px;
         background-color:yellow;
         border:1px solid gray;
       }
       li.exemple {
         display:block;
         width:100px;
         height:100px;
         margin:12px;
         padding:6px;
         background-color:lightgreen;
         border:1px solid grey;
       }
       form {
         background-color:red;
       }
      
      FAQ jQuery
      
         Liste n° 1
         Liste n° 2
         Liste n° 3
         Liste n° 4
         Liste n° 5
       
       Division n° 1
       Division n° 2
       
         Un mot pour remplir
         Division n° 3
       
       Division n° 4
       Division n° 5
      
          $(function(){
             var temp = [];
             var obj = $("#conteneur");

                obj.find("div").each(function(i, item){
                   temp.push($(item));
                });

                obj.find("li").each(function(i, item){
                   // au cas où il n'y aurait pas le même nombre de chaque type d'élément !
                   if (temp.length > 0){
                      $(item)
                         // retire le premier élément de temp
                         .data("division", temp.shift())
                         .click(function(){
                            // avec animation 1,5s
                            $("html, body")
                               .animate({
                                  "scrollTop": $(this).data("division").position().top
                               }, 1500);

                                   // sans animation
                                   /*
                                   $("html, body")

                                                                                 - 21 -
Les sources présentées sur cette pages sont libres de droits, et vous pouvez les utiliser à votre convenance. Par contre la page de présentation de ces sources
constitue une oeuvre intellectuelle protégée par les droits d'auteurs. Copyright © 2011 Developpez LLC. Tout droits réservés Developpez LLC. Aucune
reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez
LLC. Sinon vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérêts.
                                                              http://javascript.developpez.com/faq/jquery/
FAQ jQuery

                                       .scrollTop($(this).data("division").position().top);
                                  */
                                });
               }
            });
         });
       
                                         Comment puis-je créer un nouvel élément du DOM ?
Auteurs : danielhagnoul ,
 [jQuery 1.4.2]

     $(elementVide, objetJSON).appendTo(selecteurJQuery);

     $("", { id:"maDivID" }).appendTo("#conteneur");

 La construction débute obligatoirement par un élément vide, on ne peut pas écrire :

 Cette technique est particulièrement utile lors de l'écriture de plug-ins ou de widgets, et pour ajouter un fragment au
 DOM lorsque son existence ou son contenu est conditionné par le résultat d'un script.
 Exemple 1
 Ajoutez une nouvelle division d'id maDivID, avec la classe maClass et l'attribut title. Cette division doit réagir au clic
 et au survol du pointeur.

     .maClass {
       color:black;
     }

     var str = "Un mot pour remplir.";

     $("",{
      id:"maDivID",
      "class":"maClass",
      title:"Ma nouvelle division est géniale !",
      html:str,
      css:{
        margin:"12px",
        padding:"6px",
        fontSize:"2em",
        backgroundColor:"#ced0d7",
        border:"1px solid gray",
        cursor:"pointer"
      },
      click:function(event){
        alert(new Date(event.timeStamp));
      },
      mouseenter:function(){
        $(this).css("color","red");
      },
      mouseleave:function(){
        $(this).css("color","black");
      }
     }).appendTo("#conteneur");

                                                                                 - 22 -
Les sources présentées sur cette pages sont libres de droits, et vous pouvez les utiliser à votre convenance. Par contre la page de présentation de ces sources
constitue une oeuvre intellectuelle protégée par les droits d'auteurs. Copyright © 2011 Developpez LLC. Tout droits réservés Developpez LLC. Aucune
reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez
LLC. Sinon vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérêts.
                                                              http://javascript.developpez.com/faq/jquery/
Vous pouvez aussi lire