jQuery - Guide de démarrage

Introduction sur l'univers jQuery

jQuery est l'un des framework javascript les plus populaires sur internet. Il va vous permettre de réaliser vos propres traitement javascript de manière simple et rapide. jQuery est utilisé en natif sur les sites Drupal ainsi que sur les boutiques Zlio. Si vous utilisez une de ces deux technologies pour votre site, vous n'aurez aucune installation à faire. Dans les autres cas, la rubrique installation vous décrira les étapes à effectuer pour pouvoir utiliser jQuery sur votre site.

Pré-requis

Pour bien comprendre tous les exemples du guide, il est nécessaire de connaître les bases du langage HTML ainsi que les styles CSS. Il peut être également utile d'avoir un environnement de développement web efficace, dans ce domaine nous vous conseillons fortement l'utilisation du navigateur Mozilla FireFox avec son plugin FireBug qui vous permettra de "debugger" c'est à dire de suivre en pas à pas l'exécution de votre code JavaScript .

Comment installer jQuery?

Comment télécharger jQuery ?

La première chose à faire pour installer jQuery, c'est de récupérer la bibliothèque sur le site officiel jquery.com. Sélectionnez la version de production (qui pèse seulement 24KB) puis cliquez sur le gros bouton "Download jQuery". Le fichier "jquery-1.4.2.min.js" (la version est susceptible d'évoluer) s'affiche alors dans votre navigateur. Il ne vous reste plus qu'à sauvegarder le fichier sur votre ordinateur en sélectionnant Fichier/Enregistrer sous (ou en cliquant sur les touches Ctrl+S).

Comment charger jQuery dans ma page HTML?

La librairie JavaScript jQuery se charge au niveau de votre balise <head>, c'est à dire dans l'entête de votre page HTML.

Voici un exemple si votre fichier "jquery-1.4.2.min.js" est situé dans le même répertoire que votre page HTML :

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr" dir="ltr">
<head>
  <title>Ma page HTML</title>
  <script type="text/javascript" src="jquery-1.4.2.min.js"></script>
</head>
<body>
.... le contenu de la page HTML
</body>
</html>

Attention l'attribut "src" permet de définir le chemin d'accès au fichier javascript "jquery-1.4.2.min.js". Si vous avez placez ce fichier dans un répertoire différent de votre page HTML, il faudra indiquer le chemin complet comme dans l'exemple :

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr" dir="ltr">
<head>
  <title>Ma page HTML
  <script type="text/javascript" src="nomrepertoire/jquery-1.4.2.min.js"></script>
</head>
<body>
.... le contenu de la page HTML
</body>
</html>

Débuter avec jQuery

Débuter avec jQuery

Avant de débuter avec jQuery, il faut installer le fichier jquery.js sur son ordinateur. Une fois l'installation terminée, nous pourrons commencer à découvrir petit à petit les formidables possibilités de ce framework JavaScript.

Ma première page HTML - jQuery

Pour bien commencer et suivre notre guide au fur et à mesure vous pouvez créer votre propre page de test comme suit :

<!DOCTYPE html>
<html>                                                            
 <head>
 <title>Ma première page HTML - jQuery</title>                                        
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript">                               
   // notre code javascript sera ajouté ici
  // Attention le code javascript doit toujours être ajouté entre des balises script                          
 </script>                                                      
 </head>                                                           
 <body>                                                                  
   <!-- notre code HTML sera ajouté ici -->                               
 </body>                                                                 
 </html>

La page HTML est-elle prête ?

Avant d'exécuter du JavaScript, il faut s'assurer que les éléments de la page ont terminé d'être chargés (on parle de Document Ready). En effet le JavaScript permet de manipuler les éléments HTML mais si vous essayez de manipuler un élément qui n'est pas encore chargé votre code risque de tomber en erreur en vous indiquant qu'il n'a pas trouvé l'élément. Heureusement jQuery vous fournit une fonction ready() qui permet de savoir le plus tôt possible quand la page est prête pour le JavaScript. Insérons le code correspondant dans la zone JavaScript de notre page HTML:

$(document).ready(function(){
   // vous pouvez exécuter du code JavaScript ici car la page HTML est prête...
 });                  

Pour l'instant notre page ne fait pas grand chose, nous allons donc ajouter un peu d'animation à tout ça. Pour cela nous utiliserons la fonction JavaScript alert() qui permet d'afficher un message à l'aide d'une popup. Remplaçons la ligne de commentaire précédente pour obtenir le code suivant :

$(document).ready(function(){
   alert("Le JavaScript et jQuery c'est vraiment génial !! ");
 });                  

Très bien, nous avons réussi à créer notre première fonctionnalité JavaScript. Essayons maintenant d'interagir avec l'utilisateur de la page HTML

Comment capter un évènement utilisateur en jQuery?

L'un des principaux intérêts du JavaScript c'est de pouvoir exécuter un traitement en réponse à un événement utilisateur comme un clic ou un survole de souris. Cela permet à votre page HTML de devenir plus interactive et plus ergonomique. Avec jQuery rien de plus simple, il suffit de remplacer le code JavaScript et le code HTML précédent par les exemples ci-dessous :

Voilà nous venons donc, très simplement et avec peu de code, d'associer un traitement lors du clic sur chacun des liens de notre page. Analysons ensemble ce code jQuery. Nous pouvons remarquer l'utilisation de 3 fonctions jQuery, les fonctions $(), click() et html().

Animations et effets en jQuery

jQuery vous fournit un ensemble de fonctions qui vont vous permettre d'appliquer des animations à vos éléments HTML. Essayons par exemple de coder un lien qui permettra d'afficher ou de cacher une zone de texte.

Dans cet exemple, nous utilisons deux nouvelles fonctions jQuery, la fonction show() et la fonction hide(). Lorsque nous cliquerons sur un lien avec la class "show" alors nous appliquerons la fonction show à l'élément identifié par l'id="text-hidden". Lorsque nous cliquerons sur les liens avec la class "hide" alors nous appliquerons la fonction hide à l'élément identifié par l'id="text-hidden".

Modifier l'apparence d'éléments HTML en jQuery

Une fonctionnalité importante de jQuery, c'est la possibilité de modifier à la volée l'apparence (c'est à dire les styles CSS) d'un élément HTML . Pour illustrer ce paragraphe, nous allons essayer de coder une zone de texte dont l'apparence change lorsqu'elle est survolée par la souris de l'utilisateur

Dans cet exemple, nous avons utilisé deux nouvelles fonctions jQuery, hover() et css(). Comme vous pouvez vous en douter , la fonction hover() va permettre de gérer l'évènement "survole de la souris" alors que la fonction css() permet de modifier les styles css et donc l'apparence de votre élément HTML.

Les fonctions jQuery sont "chaînables"

La plupart des fonctions jQuery retourne l'objet jQuery sur lequel elles sont appliquées. Concrètement cela signifie que vous pouvez enchainer les fonctions les unes après les autres. Pour illustrer nos propos, reprenons l'exemple où nous avions modifié le texte du lien sur lequel l'utilisateur clique

   $("#demo1 a").click(function (){
      $(this).html("<strong>lien cliqué</strong>");
      return false;
    });

Dans cet exemple, nous avions modifié le texte du lien pour indiquer qu'il avait été cliqué ("lien cliqué"). Imaginons maintenant que nous souhaitions mettre encore plus en évidence le lien cliqué en lui ajoutant un fond rouge. Dans ce cas nous pourrions modifier le code pour obtenir

 $(this).html("<strong>lien cliqué</strong>");
 $(this).css({'background':'red'});

Mais pour simplifier le code, jQuery nous permet d'enchainer les fonctions

 $(this).html("<strong>lien cliqué</strong>").css({'background':'red'});

Récupérer un objet javascript standard à partir de l'objet jQuery

Dans le concept jQuery, tout est encapsulé dans le fameux objet jQuery que nous avons étudié précédemment. Cependant il arrivera parfois que vous souhaitiez utiliser les propriétés des objets javascript standards (éléments DOM). Pour cela jQuery vous fournit la fonction get qui vous permet de récupérer les objets javascript standards à partir de l'objet jQuery.

Aller plus loin avec jQuery

Voilà, ce petit quide démarrage jQuery est terminé en espérant que celui-ci vous ait donné envie d'approfondir votre apprentissage. Pour cela, nous travaillons sur d'autres rubriques à venir.

jQuery Core - le coeur de jQuery

jQuery Core

Dans cette partie, nous allons étudier plus en détails les fonctions de base du framework JavaScript jQuery

La fonction jQuery

La fonction jQuery()(ou son équivalent simplifié la fonction $()) est la fonction de base du framework, c'est elle que vous serez amené à utiliser le plus souvent. Il est donc important de connaître en détail son fonctionnement. Il existe 4 utilisations différentes pour la fonction jQuery qui vont vous permettre notamment de récupérer un élément HTML de votre page ou encore créer un nouvel élément HTML dans votre page.

La fonction each

La fonction each(function) permet d'exécuter un traitement pour chaque élément d'une liste récupérée par la fonction jQuery. Le traitement à effectuer doit être défini dans une fonction passée en paramètre. (en savoir plus)

La propriété length

La propriété length retourne le nombre d'éléments de l'objet jQuery. Elle retourne le même résultat que la fonction size() mais son exécution est légèrement plus rapide (à utiliser donc de préférence)

La fonction eq

La fonction eq(position) permet de récupérer un élément spécifique dans une liste de résultats jQuery. Cette fonction prend en argument la position de l'élément dans la liste.

La fonction get

La fonction get() permet de récupérer les éléments de type DOM (objets javascript standards) qui sont "encapsulés" dans l'objet jQuery. La liste des éléments est retournée sous forme de tableau. Cette fonction est très utile si vous souhaitez utiliser directement les propriétés des élément DOM au lieu des propriétés jQuery.

La fonction index

La fonction index(element) parcourt la liste des éléments récupérés par une fonction jQuery pour y rechercher l'élément passé en paramètre. Si l'élément est trouvé la fonction retourne sa position (index) dans la liste, si l'élément est introuvable la fonction retourne -1

Dans nottre exemple, nous associons à chaque clic sur un item de type <li> une fonction qui va afficher la position (index) de l'élément dans la liste (rappel : la numération commence à zéro)

$("#demo-index li").click(function () {
      var index = $("#demo-index li").index(this);
      $("#demo-index span").html("Index du li : " + index);
});
 
  • Item1
  • Item2
  • Item3
  • Item4
  • Item5

jQuery Core - la fonction each

La fonction each

La fonction each(function) permet d'exécuter un traitement pour chaque élément d'une liste récupérée par la fonction jQuery. Le traitement à effectuer doit être défini dans une fonction passée en paramètre.

Démonstration 1 - boucler sur chaque élément

Démonstration 2 - contrôler la boucle

Démonstration 3 - exemple d'utilisation

jQuery Core - la fonction jQuery ou $

La fonction jQuery() (ou son équivalent simplifié la fonction $()) est la fonction de base du framework, c'est elle que vous serez amené à utiliser le plus souvent. Il est donc important de connaître en détail son fonctionnement. Il existe 4 utilisations différentes pour la fonction jQuery qui vont vous permettre notamment de récupérer un élément HTML de votre page ou encore créer un nouvel élément HTML dans votre page.

1. jQuery(selecteurCSS, [contexte])

Cette fonction prend un premier argument qui est une chaîne de caractères représentant un sélecteur CSS. Elle vous permet de filtrer les éléments que vous souhaitez récupérer. Le deuxième argument est facultatif et représente le contexte de recherche. Par défaut, la recherche est effectuée dans le document HTML tout entier mais vous pouvez spécifier un contexte plus précis comme élément du DOM ou un objet jQuery

Mais si nous voulons faire un traitement sur la div avant de mettre une bordure au titre h4, nous pouvons utiliser le paramètre facultatif "contexte".

2. jQuery(codeHTML, [ownerDocument])

Cette fonction prend un premier argument qui est une chaîne de caractères représentant du code HTML. Elle vous permet de créer un élément HTML (élément du DOM ) de manière dynamique dans votre page. Le deuxième argument est facultatif et représente le document dans lequel les nouveaux éléments seront crées.

3. jQuery(fonction)

Cette fonction prend en argument une autre fonction. Elle permet de s'assurer que la fonction passée en paramètre sera exécutée uniquement lorsque tous les éléments de votre page HTML seront chargés et donc prêts à être manipulés. Elle est donc équivalente à la fonction vu précédemment $(document).ready() et peut donc être utilisée comme écriture simplifiée. Il est à noter que la fonction $(fonction) de même que la fonction $(document).ready() peuvent être utilisées autant de fois que voulu sur la même page.

$(function(){
  // Les éléments de la page HTML sont chargés et peuvent être manipulés
});
est équivalent à
$(document).ready(function(){
  // Les éléments de la page HTML sont chargés et peuvent être manipulés
});

4. jQuery(elements)

Cette fonction prend en argument un ou plusieurs éléments du DOM. Elle permet d'étendre les fonctionnalités d'un élément en lui ajoutant les propriétés jQuery.

Par exemple pour définir la couleur de fond de l'élément body

$(document.body).css( "background", "#000" );

On peut également utiliser la fonction pour plusieurs éléments en passant par un tableau. Ici, on souhaite inhiber tous les champs d'un formulaire

jQuery Attributs

Découvrez les méthodes permettant de manipuler les attributs de vos éléments HTML

La fonction addClass

La fonction addClass va vous permettre d'ajouter un ou plusieurs noms de class au niveau de l'attribut class de(s) élément(s) récupéré(s) par la fonction jQuery. Associée aux styles CSS, cette fonction vous permettra de modifier dynamiquement l'apparence de vos éléments HTML.

La fonction removeClass

La fonction removeClass va vous permettre de supprimer un ou plusieurs noms de classe au niveau de l'attribut class de(s) élément(s) récupéré(s) par la fonction jQuery. Associée aux styles CSS, cette fonction vous permettra de modifier dynamiquement l'apparence de vos éléments HTML.

La fonction toogleClass

La fonction toogleClass va vous permettre d'ajouter ou supprimer un ou plusieurs noms de classe au niveau de l'attribut class de(s) élément(s) récupéré(s) par la fonction jQuery. Si le nom de class est déjà présent alors il sera supprimé, s'il est absent il sera ajouté. Associée aux styles CSS, cette fonction vous permettra de modifier dynamiquement l'apparence de vos éléments HTML.

La fonction hasClass

La fonction hasClass(classname) permet de tester si un objet ou groupe d'objets possède le nom de class passé en paramètre.

La fonction attr

La fonction attr permet de récupérer ou mettre à jour les attributs d'un élément HTML.