jQuery

Créer des interfaces web avec jQuery

jQuery

Présentation

jQuery

Présentation

jQuery est une librairie javascript permettant de manipuler et interagir avec le navigateur plus simplement

jQuery n'est pas un outil obligatoire, il éxiste aujourd'hui des librairies plus puissante

Cependant, cet outil reste incontournable de part son utilisation massif entre 2000 et 2010 

jQuery

Présentation

Comment installer jQuery ?

  1. Utiliser une balise script avec un CDN
  2. Télécharger la librairie, et de l'importer grâce à une balise dans notre document
  3. Utiliser un bundler et un gestionnaire de paquets (ex : npm, parcel, webpack ...)

jQuery

Les sélécteur

jQuery

Les sélécteurs

Grace à jQuery nous pouvons facilement sélectionner des éléments de notre document HTML en utilisant des sélecteur CSS

// Séléction de tout les h1 de la page
$('h1')

// Séléction de tout les paragraph
$('p')

// Séléction de tout les paragraph dans la class .article
$('.article p')

jQuery

Les sélécteurs

Nous pouvons interagir avec nos élément grâce à de nombreuse méthodes : Ici manipuler le text et la html

// Modification du text de tout les h1
$('h1').text('Coucou')

// Modifier le html de toutes les class article
$('.article').html('<p>Nouvelle article</p>')

// Ajout d'un paragraph à la fin de la balise .article
$('.article').append('<p>Ajout d\'un paragraph</p>')

// Ajout d'un paragraph au début de la balise .article
$('.article').prepend('<p>Ajout d\'un paragraph</p>')

// Vide l'intégralite de l'article
$('.article').empty()

jQuery

Les sélécteurs

Nous pouvons interagir avec nos élément grâce à de nombreuse méthodes : Ici manipuler les class CSS

// Ajouter une class css .red à un paragraph
$('p').addClass('red')

// Supprime la class css .red à un paragraph
$('p').removeClass('red')

// Ajouter / Supprimer une class css .red à un paragraph
$('p').toggleClass('red')

// Test si la class css .red est attaché à mon paragraph
$('p').hasClass('red')

jQuery

Les sélécteurs

Nous pouvons interagir avec nos élément grâce à de nombreuse méthodes : Ici manipuler les attributs

// Obtenir la valeur de l'attribut href d'une balise a
$('a').prop('href')

// Assigner / Changer l'attribut href d'une balise a
$('a').prop('href', '#test')

jQuery

Les Events

jQuery

Les Events

Un événement c'est un effet qui se produit sur votre interface

 

Exemple :

- un click

- un double click

- lorsque la souris rentre dans un élément

- lorsque l'on appuie sur un touche clavier

- etc ...

jQuery

Les Events

En jQuery, il est possible d'attacher (bind) des événements à des fonctions

// Ici on attache un fonction lors du clique
// sur des h1
$("h1").bind("click", () => {
  // Ce console se lancera losque l'utilisateur
  // cliquera sur le h1 !
  console.log("Clique !")
})

// On attache un événement losque la souris rentre
// dans l'élément .box
$(".box").bind("mouseenter", () => {
  console.log("Souris dans la boite !")
})

// On attache un événement losque la souris sort
// de l'élément .box
$(".box").bind("mouseleave", () => {
  console.log("Souris sors de la boite !")
})

// On attache un événement losque la souris bouge
// à l'intérieur de notre box
$(".box").bind("mousemove", () => {
  console.log("Souris sors de la boite !")
})

jQuery

Les Events

Il existe bien plus d'événement :

// Voici la liste des événements principaux
// que l'on peut attacher

// Événement souris
"click"
"doubleclick"
"mouseenter"
"mouseleave"
"mousemove"
"contextmenu" // Click droit
"scroll"

// Événement clavier
"keyup" // Relever une touche du clavier
"keydown" // Appuie sur la touche du clavier
"keypress" // Pression sur une touche du clavier

// Événement tactile
"touchstart" // Lorsque l'on commence à toucher un élément
"touchend" // Lorsque l'on léve le doigt de l'écran
"touchmove" // Lorsque bouge le doight sur l'écran
"touchcancel"

jQuery

Les Events

$(".box").bind("click", (event) => {
  console.log(event.type) // click
  console.log(event.pageX) // coordonées de la souris X
  console.log(event.pageY) // coordonées de la souris Y
})

En jquery, nous pouvons récupérer un objet event contenant diverse informations

jQuery

Les Events


$("form button").bind("click", (event) => {
  // Annule tout les comportements prévus sur le clique
  event.preventDefault()

  console.log("click")
})

Il est possible d'annuler le comportement prévue d'un événement (preventDefault)

jQuery

Les Events

$(".one").bind("click", () => console.log("Click one"))
$(".two").bind("click", () => console.log("Click two"))
$(".three").bind("click", (event) => {
  // Arréte la propagation de l'événement
  // Ce qui veut dire les event sur .two, et .one
  // ne serons jamais déclenché
  event.stopPropagation()
  console.log("Click three")
})

Il est possible d’arrêter la propagation d'un event sur ses parents

jQuery

AJAX

les requêtes HTTP

jQuery

Les requêtes HTTP

En HTTP, le client créer un fichier text que nous nommons "Request"

Le serveur, lis et analyse ce fichier texte et retourne ce que nous nommons une "Response" (c'est aussi un fichier texte)

jQuery

Les requêtes HTTP

Regardons de plus près le fichier texte d'une "Request"

GET http://google.fr
Content-Type: text/html
User-Agent: google-chrome

<html>
</html>

jQuery

Les requêtes HTTP

Regardons de plus près le fichier texte d'une "Request"

GET http://google.fr
Content-Type: text/html
User-Agent: google-chrome

<html>
</html>

La première ligne contient :

La méthode (GET)

L'URL (https://google.fr)

jQuery

Les requêtes HTTP

Regardons de plus près le fichier texte d'une "Request"

GET http://google.fr
Content-Type: text/html
User-Agent: google-chrome

<html>
</html>

La première et suivie des en-tête HTTP

jQuery

Les requêtes HTTP

Regardons de plus près le fichier texte d'une "Request"

GET http://google.fr
Content-Type: text/html
User-Agent: google-chrome

<html>
</html>

Ici, c'est le contenue de la request

jQuery

Les requêtes HTTP

Regardons de plus près le fichier texte d'une "Response"

HTTP/1.1 200 OK
Content-Type: text/html; charset=utf-8
Date: Wed, 09 Jun 2021 12:37:17 GMT

<!DOCTYPE html>
<html>
  ...
</html>

jQuery

Les requêtes HTTP

Regardons de plus près le fichier texte d'une "Response"

HTTP/1.1 200 OK
Content-Type: text/html; charset=utf-8
Date: Wed, 09 Jun 2021 12:37:17 GMT

<!DOCTYPE html>
<html>
  ...
</html>

La ligne 1 contient les informations suivante :

- Le protocole (Scheme) ainsi que sa version (HTTP/1.1)

- La status code (200) et son status text (OK)

jQuery

Les requêtes HTTP

Regardons de plus près le fichier texte d'une "Response"

HTTP/1.1 200 OK
Content-Type: text/html; charset=utf-8
Date: Wed, 09 Jun 2021 12:37:17 GMT

<!DOCTYPE html>
<html>
  ...
</html>

Les en-têtes HTTP

jQuery

Les requêtes HTTP

Regardons de plus près le fichier texte d'une "Response"

HTTP/1.1 200 OK
Content-Type: text/html; charset=utf-8
Date: Wed, 09 Jun 2021 12:37:17 GMT

<!DOCTYPE html>
<html>
  ...
</html>

Le contenue de la "Response" (ici, la page html de google.fr)

jQuery

Les requêtes HTTP

En jQuery il est possible de faire une requête HTTP

// Nous créons une variable request
let request = $.ajax({
  // Nous spécifions l'url de la request
  url: 'https://google.fr',
  // (facultative, GET par défaut) Nous ajoutons la méthode
  method: 'GET',
  // (facultative) Nous pouvons luis spécifier des données
  data: '<html></html>',
  // (facultative) Ainsi que des en-têtes HTTP
  headers: {
  	"Content-Type": "text/html"
  }
})

jQuery

Les requêtes HTTP

En jQuery il est possible de récupérer les données d'une requête

// Nous créons une variable request
let request = $.ajax({
  // ...
})

// Afin de récupérer les données d'une
// request. Il faut utiliser l'événement
// "done"
request.done((htmlDeGoogle) => {
  console.log(htmlDeGoogle) // Affiche tout le html de google.fr
})

jQuery

By David Jegat

jQuery

  • 152