JavaScript - Gestionnaires

Introduction aux Gestionnaires JavaScript

Bonjour, futurs programmeurs ! Aujourd'hui, nous allons plonger dans le monde passionnant des gestionnaires JavaScript. En tant que votre professeur d'informatique bien-aimé du quartier, je suis là pour vous guider à travers ce périple avec pleins d'exemples et d'explications. Alors, prenez votre boisson favorite, asseyez-vous confortablement, et c'est parti !

JavaScript - Handler

Qu'est-ce qu'un Gestionnaire en JavaScript ?

En JavaScript, un gestionnaire est une fonction qui est appelée lorsqu'un événement spécifique se produit. Imaginez-le comme un assistant spécial toujours en attente, prêt à intervenir. Quand cet événement se produit, notre gestionnaire passe à l'action !

Commençons par un exemple simple :

let button = document.querySelector('button');
button.onclick = function() {
alert('Bonjour, le Monde !');
};

Dans ce code, nous disons à JavaScript : "Quand quelqu'un clique sur ce bouton, affiche une alerte disant 'Bonjour, le Monde !'". La fonction que nous avons affectée à button.onclick est notre gestionnaire.

Types de Gestionnaires Communs

JavaScript a beaucoup de types de gestionnaires. Jetons un coup d'œil à certains des plus communs :

Type de Gestionnaire Description Exemple
onclick Déclenché lorsque un élément est cliqué element.onclick = function() { ... }
onmouseover Déclenché lorsque la souris se déplace sur un élément element.onmouseover = function() { ... }
onkeydown Déclenché lorsque une touche est enfoncée document.onkeydown = function(event) { ... }
onload Déclenché lorsque une page ou une image finit de charger window.onload = function() { ... }
onsubmit Déclenché lorsque un formulaire est soumis form.onsubmit = function(event) { ... }

Créer et Utiliser des Gestionnaires

Méthode 1 : Attribut HTML

Une façon de créer un gestionnaire est d'ajouter directement à un élément HTML en tant qu'attribut. Voici un exemple :

<button onclick="alert('Cliqué !')">Cliquez-moi</button>

Lorsque vous cliquez sur ce bouton, une alerte affichera "Cliqué !". Simple, n'est-ce pas ?

Méthode 2 : Propriété DOM

Une méthode plus flexible consiste à utiliser JavaScript pour affecter un gestionnaire à la propriété d'un élément :

let button = document.querySelector('button');
button.onclick = function() {
console.log('Le bouton a été cliqué !');
};

Cette méthode nous permet de changer le gestionnaire dynamiquement et d'accéder à l'élément à l'intérieur de la fonction.

Méthode 3 : addEventListener

La méthode la plus puissante est d'utiliser addEventListener. Elle nous permet d'ajouter plusieurs gestionnaires au même événement :

let button = document.querySelector('button');
button.addEventListener('click', function() {
console.log('Premier gestionnaire');
});
button.addEventListener('click', function() {
console.log('Deuxième gestionnaire');
});

Maintenant, lorsque vous cliquez sur le bouton, les deux messages seront enregistrés dans la console !

L'Objet Événement

Lorsqu'un événement se produit, JavaScript crée un objet 'événement' avec des détails sur ce qui s'est passé. Nous pouvons accéder à cet objet dans notre gestionnaire :

document.onmousemove = function(event) {
console.log('Position de la souris:', event.clientX, event.clientY);
};

Ce code enregistre la position de la souris chaque fois qu'elle se déplace. L'objet event nous donne accès à toutes sortes d'informations utiles !

Supprimer des Gestionnaires

Parfois, nous avons besoin de supprimer un gestionnaire. Voici comment nous pouvons le faire :

let button = document.querySelector('button');
function handler() {
console.log('Cliqué !');
button.removeEventListener('click', handler);
}
button.addEventListener('click', handler);

Ce gestionnaire ne s'exécutera qu'une seule fois car il se supprime après le premier clic !

Exemple Pratique : Un Jeu Simple

Mettons tout cela ensemble dans un petit jeu amusant. Nous allons créer un bouton qui se déplace lorsque vous essayez de le cliquer :

<button id="catch-me">Attrape-moi si tu peux !</button>

<script>
let button = document.getElementById('catch-me');
button.addEventListener('mouseover', function() {
let top = Math.random() * (window.innerHeight - this.offsetHeight);
let left = Math.random() * (window.innerWidth - this.offsetWidth);
this.style.top = top + 'px';
this.style.left = left + 'px';
});

button.addEventListener('click', function() {
alert('Félicitations ! Tu m'as attrapé !');
});
</script>

Dans ce jeu, le bouton se déplace à une position aléatoire chaque fois que vous essayez de le survoler. Si vous parvenez à cliquer dessus, vous gagnez !

Conclusion

Et voilà, les amis ! Nous avons couvert les bases des gestionnaires JavaScript, de ce qu'ils sont à comment les utiliser dans des situations pratiques. Souvenez-vous, la pratique rend parfait, donc n'ayez pas peur d'expérimenter avec ces concepts.

Comme je le dis toujours à mes élèves, coder c'est comme apprendre à faire du vélo. Ça peut sembler不稳定 au début, mais avec de la pratique, vous serez bientôt en train de rouler sans problème ! Continuez à coder, continuez à apprendre, et surtout, amusez-vous !

Credits: Image by storyset