Interagir avec les événements
JavaScript permet de capter les événements qui se produisent en interaction à la page HTML et d'exécuter des fonctions lorsqu'ils se déclenchent.
Rappel :
Il est possible d'associer un attribut class
et/ou id
aux éléments HTML, afin de les identifier :
Méthode : Identifier un élément avec document.querySelector
On peut stocker dans une variable l'adresse d'un élément HTML que l'on aura trouvé avec la fonction querySelector
.
// Identify an element with a class
let element1 = document.querySelector('element1.class1')
// Identify an element with an id
let element2 = document.querySelector('element1#id1')
Exemple :
<html lang="fr">
<head>
<title>Say Hello</title>
<meta charset="utf-8">
<script src="script.js" defer></script>
</head>
<body>
<h1>JavaScript</h1>
<p id="first-p">JavaScript (qui est souvent abrégé en « JS ») est un langage de script léger, orienté objet, principalement connu comme le langage de script des pages web. </p>
<p>Le standard pour JavaScript est ECMAScript. En 2012, tous les navigateurs modernes supportent complètement ECMAScript 5.1.</p>
<p class="say-hello"><b>Cliquez-moi pour dire bonjour</b></p>
<p><a href="https://developer.mozilla.org/fr/docs/Web/JavaScript">[source]</a></p>
</body>
</html>
let p1 = document.querySelector('#first-p')
let p2 = document.querySelector('p.say-hello')
alert(p1.textContent)
alert(p2.textContent)
Méthode : Associer un événement avec addEventListener.
On peut associer des événements à des éléments HTML avec la fonction addEventListener
.
// Call function1 when element1 receive event1
element1.addEventListener('event1', function1)
Exemple :
let p1 = document.querySelector('#first-p')
let p2 = document.querySelector('p.say-hello')
let body = document.querySelector('body')
p1.addEventListener('dblclick', printP1)
p2.addEventListener('click', sayHello)
body.addEventListener('keypress', printBody)
function sayHello() {
alert('Tu as cliqué sur moi.')
}
function printP1() {
alert('Merci de ne pas trop cliquer sur moi...')
}
function printBody() {
alert('Hey, pas avec le clavier !')
}
<html lang="fr">
<head>
<title>Say Hello</title>
<meta charset="utf-8">
<script src="script.js" defer></script>
</head>
<body>
<h1>JavaScript</h1>
<p id="first-p">JavaScript (qui est souvent abrégé en « JS ») est un langage de script léger, orienté objet, principalement connu comme le langage de script des pages web. </p>
<p>Le standard pour JavaScript est ECMAScript. En 2012, tous les navigateurs modernes supportent complètement ECMAScript 5.1.</p>
<p class="say-hello"><b>Cliquez-moi pour dire bonjour</b></p>
<p><a href="https://developer.mozilla.org/fr/docs/Web/JavaScript">[source]</a></p>
</body>
</html>
Complément : Quelques événements classiques
click, dblclick : quand l'utilisateur clique sur la souris
mouseover, mouseout : quand l'utilisateur passe au entre et sort d'un élément avec sa souris
keypress : quand l'utilisateur appuie sur une touche du clavier
change : quand un élément HTML change de valeur (par exemple un élément d'un formulaire)
load : quand la page HTML est totalement chargée
Complément : Tous les événements JavaScript
Complément : Pour récupérer l'événement dans la fonction
element1.addEventListener('event1', (e) => function1(e))
Complément : Pour passer d'autres paramètres à la fonction
element1.addEventListener('event1', (e) => function1(e, x))