LE JQUERY EN DÉTAIL
Introduction
La librairie Jquery va principalement nous permettre d'écrirez moins de code pour obtenir le même résultat.
Exemple ce code nous renvoi le nombre de pixel verticaux présents dans la page web en écriture Javascript
Ici les librairie et Jquery dans notr cas ont un intérêt non-négligeable car elle synthétise certaines fonction souvent utilisées dans le développement web. Jquery est relativement conue mais il n'en existe de nombreuses autres. Même si elles sont toutes basées sur Javascript chacune d'elle à sa syntaxe et sa manière de fonctionner.
Voici donc comment on écrit la précédente fonction en Jquery :
Ça ne vous aura pas échappé, c'est plus simple.
Pour commencer à s'amuser
La première chose à faire est d'intégrer la librairie Jquery à notre page pour ce faire on peut soit télécharger le fichier Jquery.min.js sur notre serveur soit directement faire référence à son adresse en ligne comme indiqué ci-dessous ci-dessous :
L'ensemble du framework jQuery repose sur une seule fonction. C'est la fonction la plus importante du framework, vous devrez toujours l'utiliser dès qu'il s'agira de développer en jQuery. Cette fonction, c'est tout bêtement la fonction jQuery()
!
Elle va servir tout simplement à dire : "Hop là ! A partir de maintenant, c'est du jQuery qu'il va y avoir". Sans cette fonction, le code jQuery peut ne pas être interprété correctement. C'est peut-être là une faiblesse qui n'en est pas une pour le framework : tout le code qu'on l'on va devoir écrire, on va devoir le faire au sein de cette fonction. 😎
Reprenons notre code de tout à l'heure et voyons comment appeler la fonction jQuery().
Décorticage :
Nous nous intéressons à la partie Javascript :
jQuery prend un argument. Ici, elle cible le "document", qui représente tout simplement votre document HTML sur lequel vous travaillez : votre page web.
La suite de ce code est vraiment très simple. Vous voyez que le prochain élément qui arrive, est l'événement ready
. Cet événement se traduit simplement par "est prêt". Une fois que cet événement est vérifié, on lance une fonction anonyme dans laquelle on va placer notre jQuery.
Ainsi, cette ligne peut être traduite par : "quand le document HTML est prêt (sous-entendu, est chargé), lance une fonction qui contient le code jQuery."
Cette petite structure de rien du tout signifie vraiment beaucoup de choses : on attend simplement que la page HTML soit chargée avant de commencer à parler de jQuery. C'est LA structure que vous devrez utiliser dans 99% des cas pour coder en jQuery dans votre page. Retenez-la par cœur, parce que cela vous fera vraiment gagner du temps.
Comment vérifier que l'ensemble de la page à bien été chargé ?
Servez-vous des précédentes possibilités étudier dans le JavaScript.
Comment cibler ?
Comme nous venons de le voir, le framework met en place une fonction dite principale. Le principe de fonctionnement de jQuery repose en fait entièrement sur celle-ci ! Autant dire que vous allez vous servir beaucoup plus du caractère $ (dollar) dès à présent !
Ainsi, pour agir avec les éléments d'une page web, on réalisera ce qu'on appelle couramment un « ciblage d'élément », qui représentera une balise, par exemple. On agira ensuite dessus grâce à des méthodes. Pour que vous ayez un aperçu, voici un code fictif tout simple usant du principe de jQuery :
Je cible dans un premier temps mon élément qui jouera le rôle d'objet, grâce à un sélecteur (chose que nous verrons plus en détails dans le prochain chapitre). Je peux ensuite agir dessus grâce à une méthode !
Une méthode en jQuery est une fonction un peu spéciale qui agira directement sur l'objet (ou l'élément ciblé, si vous préférez) indiqué. Le framework en possède beaucoup, mais il est possible de créer les nôtres ! Nous verrons cela dans un chapitre dédié, lorsque vous serez plus à l'aise avec jQuery.
Il est possible de chaîner les méthodes, c'est-à-dire que l'on peut en mettre plusieurs à la suite, pour agir sur l'objet en une seule fois.
Manipuler le DOM (Document Object Model ) dynamiquement.
L'une des premières utilité du Javascript c'est de dynamiser les pages web et le Jquery permet en plus de faire ça très simplement. Prenons cet exemple :
Insérer les codes Jquery suivant au bon endroit :
Ce code permet d'jauter du contenu de façon encore plus précise.
Attention notez bien :
Votre code Jquery doit toujours être entouré du code suivant, celui permet de vérifier que tous les éléments de la page ont bien été chargé avant d'exécuter le code, sans cela votre code risque de rencontrer des erreurs car des éléments seront manquants, car pas encore charger par le navigateur.
Ce code permet en réalité d'attendre le chargement des éléments de la page avant de lire votre contenu.
Sélécteur CSS :
Ce que l'on vient de voir ne suffit pas pour vraiment tordre une page web comme on veut :
Voici donc les termes à utiliser pour sélectionner n'importe quel élément CSS du DOM
ENTRAINEMENT | POUR BIEN COMPRENDRE
Copiez ce morceau de code
En lien avec ce que l'on vient de voir avec le précédent morceau de code voici comment on pourrait sélectionner les éléments.
Variable Pratique
Expression
La variable selector d'un objet jQuery est l'expression utilisée, c'est-à-dire la chaîne de caractères qui représente le sélecteur passé en paramètre à la fonction $()
.
Son utilisation est donc $('p > span').selector
par exemple et qui renvoie "p > span".
Nombre d'éléments
La variable length (longueur) d'un objet jQuery est le nombre d'éléments contenus dans cet objet jQuery, c'est-à-dire le nombre d'éléments trouvés par l'appel à la fonction $()
.
Son utilisation est donc $('img[src*=hoto]').length
par exemple et qui renvoie dans le bout de code plus haut 3.
On peut alors détecter si un élément existe dans la page web :
Ce que l'on vient de voir ne suffit pas pour vraiment tordre une page web comme on veut :
Voici donc les termes à utiliser pour sélectionner n'importe quel élément CSS du DOM
Les événements
Faites en sorte de créer le code permettant d'exploiter ces fonctions jQuery :
Voici les différents types d'événement souris en Jquery
Et voici un petit code d'exemple pour bien comprendre l'interaction au clic.
EXERCICE | LE CHAT ET LA SOURIS
Modifier le code pour que l'image se déplace dès que la souris arrive dans l'image.
Le cas des formulaires
Pour exploiter la pleine puissance des très nombreux sélecteurs de jQuery, il faut se pencher sur les formulaires en HTML. En effet, l'interaction étant beaucoup plus présente à ces endroits, il est logique que le framework soit plus enclin à les dynamiser. Ainsi, la sélection des éléments de formulaire se fera d'une façon un peu différente, que nous allons commencer à traiter tout de suite.
Le type des éléments
Comme vous le savez surement, les éléments de formulaire peuvent changer de type selon ce que l'on veut en faire. La balise ne change pas et reste la même, on utilisera dans 90% des cas <input />
. En changeant l'attribut type
de la balise, il est possible de spécifier que l'on veut une case à cocher, un champ de texte, un bouton...
Suivant ce principe, on pourrait penser qu'il faut faire ceci en jQuery :
Il se décline ensuite pour tout les types de inputs.
État des éléments
Dernière petite astuce, vous pouvez établir une sélection suivant l'état des éléments d'un formulaire. Vous allez nous répondre qu'il n'y a pas trente-six états, justement, et vous avez effectivement raison. Neanmoins, ce sont des sélecteurs que nous retrouverons assez souvent, et nous pensons qu'il est intéressant de les connaître.
Ainsi, vous pouvez vérifier qu'une case est cochée, ou qu'un élément est activé/désactivé, grâce aux sélecteurs suivants :
-
:checked
vérifie qu'une case est cochée ; -
:disabled
cible les éléments désactivés ; -
:enabled
fait le contraire, il sélectionne les éléments activés.
<script>
$(document).ready(function(){
$("input").keydown(function(){
$("input").css("background-color", "yellow");
});
$("input").keyup(function(){
$("input").css("background-color", "pink");
});
});
</script>
Le sélecteur $(this)
Le sélecteur le plus spécial est sans aucun doute $(this)
. Dans la plupart des langages orientés objet, le mot-clé this
représente l'objet courant, celui qui est actuellement traité par une fonction, par exemple. jQuery permet la sélection de cet objet.
Exemple avec ce code qui traite chaque élément trouvé :
Animation
Interaction Drag
Interaction Drag an Drop
Interaction Accordéon
Manipuler le CSS et devenir le maître du monde de la page web
Une méthode puissante : css()
Parmi les nombreuses méthodes de jQuery, il en est une que vous utiliserez très souvent en ce qui concerne la modification du style de vos pages. Il s'agit de la méthode au nom très éloquent :css()
.
Récupérer la valeur d'une propriété
La méthodecss()
peut prendre plusieurs sortes d'arguments. Le plus simple est de spécifier le nom de la propriété, afin de récupérer sa valeur. Imaginez que vous ayez un paragraphe dont le texte est de couleur verte. Pour récupérer cette donnée, vous devrez faire ceci en jQuery :
Utilisez la base de code ci-dessous et faites une alerte affichant la couleur de la balise <p>