Le but de ce TP est de découvrir la programmation événementielle avec Javascript et JQuery en réalisant un "Memory". Ce « repository » (dépôt) contient la base du projet projet que vous pouvez télécharger, forker ou cloner.
- Créer un fichier
assets/app.jset utiliser la balisescriptpour le lier au fichierindex.html. - Ajouter
"use strict";en tête de ce fichier. - Implémenter la fonction
readyde JQuery :
$( document ).ready(function() {
console.log("Hello there!");
});- Ouvrir
index.htmlet vérifier la présence de "Hello there!" dans la console du navigateur. - L'environnement de travail est prêt, nous allons ajouter par la suite du code à la place du
console.log.
- Jouez avec le sélecteur de JQuery
$. Sélectionnez les cartes et loggez le résultat en console avecconsole.log. - Utilisez la fonction
onde JQuery et l'évènementclickpour déclencher une action lorsque l'on clique sur une carte. - Lorsque l'on clique sur une carte, retournez-la en ajoutant la class
showà la divcardsur laquelle on a cliqué. Pour cela il faut utiliser la fonctionaddClass. - Lorsque l'on clique à nouveau sur cette carte, elle retrouve sa position initiale. Pour cela, utilisez
hasClassetremoveClass. - Refactorisez votre code avec
toggleClass.
- Pour comparer les cartes en fonction de leur valeur il faut stocker cette valeur quelque part. Utilisez des data attributes pour stocker les valeurs des cartes. Les valeurs des cartes seront des entiers (1, 2, 3...). Le but du jeu étant de trouver les paires de cartes, deux cartes identiques doivent avoir la même valeur.
- https://developer.mozilla.org/fr/docs/Apprendre/HTML/Comment/Utiliser_attributs_donnes
- Stockez les valeurs des cartes sur l'élément HTML
cardavec un data attributedata-value="...". - Utilisez
$et et la fonctiondatade JQuery pour lire ces valeurs et les afficher en console avecconsole.log.
- Lorsque l'utilisateur clique sur deux cartes identiques, les laisser retournées.
- Lorsque l'utilisateur clique sur deux cartes différentes, les remettre dans leur position initiale au bout de quelques secondes avec la fonction
setTimeout.
- Régler les différents problèmes qui se posent si :
- L'utilisateur clique deux fois sur la même carte ou sur une carte déjà retournée.
- L'utilisateur clique sur une autre carte pendant le temps d'attente imposé par
setTimeout. Pour cela, utiliserhasClasset/ouunbind. Vous pouvez également refactoriser votre code pour éviter les répétitions en utilisant des fonctions.
- Compter et afficher en dessous du plateau le nombre de paires à trouver restantes.