Au cours de sa vie, Javascript a été implémenté de manières très différentes selon les constructeurs (Netscape vs Microsoft). Ses différences de fonctionnement d’un navigateur à l’autre, d’une version d’un navigateur à l’autre, ont conduit des développeurs à créer des librairies capables d’harmoniser le comportement sur tous les navigateurs. C’est le cas de jQuery, mais aussi de Mootools, Prototype, Zepto…
Events et callbacks
Dans notre code javascript, la plupart des instructions seront soumises à des événements. Ces évenements peuvent être le chargement de la page ou d’une image, un clic ou une action tactile de l’utilisateur, ou des quantités d’autres. En javascript, beaucoup d’objets sont dits “event-emitters”, ils recçoivent et envoient des événements.
var faisQuelqueChose = function (event) {
// fais quelque chose
};
var bouton = document.querySelector('#bouton');
bouton.addEventListener('click', faisQuelqueChose);
Avec jQuery, les deux lignes ci-dessus peuvent s’écrire :
$('#bouton').on('click', faisQuelqueChose);
jQuery possède une fonction maîtresse au nom très court : $
. Cette fonction très puissante permet ici à jQuery de sélectionner l’élément dont l’id
est “bouton”, de lui attacher un écouteur sur l’événement click
, et d’exécuter la fonction faisQuelqueChose
quand on clique dessus.
NB: id="machin"
en HTML se traduit #machin
en css.
jQuery DOM API
Grâce à une syntaxe semblables aux sélecteurs utilisés en CSS, jQuery peut sélectionner un élément de la page et le manipuler (changer son style, ses attributs, son contenu…).
$('#grosbouton').css('font-size', '30px');
Les istructions peuvent être enchaînées :
$('#grosbouton').css('font-size', '30px').height(100);
La syntaxe se comporte comme une phrase : — “Eh, toi, le gros bouton, quand on te clique dessus, devient rouge” :
$('#grosbouton').on('click', function(){
$(this).css('color', 'red');
});
Ici, on a introduit deux notions importantes : le mot clé this
et une fonction anonyme. Le mot this
désigne l’élément sur lequel on a cliqué ; la fonction anonyme ne sert pas ailleurs dans notre code ; on peut donc la déclarer au même instant qu’on l’exécute.
Getters et Setters
Ci dessus, nous avons utilisé les méthodes .css
et .height
pour attribuer des valeurs css et une hauteur à notre bouton. Ces méthodes peuvent également être utilisées pour lire ces valeurs css et de hauteur. Elles sont alors invoquées sans l’argument d’affectation :
$('#grosbouton').css('font-size');
// retourne '30px'
$('#grosbouton').height();
// retourne '100px'
$('#grosbouton').height(200);
// change la hauteur du bouton à 200px
$('#grosbouton').height();
// retourne maintenant '200px'