Deux nouveaux quiz jQuery

Actualitéalsacréations

Publié par le (14095 lectures)
jquery alsacréations quiz

Vous trouverez dès à présent dans la rubrique Quiz deux nouvelles listes de questions pour tester quelque peu vos connaissances en jQuery.

Bonne chance !

Commentaires

Petite coquille je pense sur la q4 du quizz débutant. La question est "Comment peut-on ajouter la classe .actif sur un élément <li> si celle-ci n'est pas présente ?"

La bonne réponse serait : $("li").addClass("actif");
toggleClass va certes ajouter la classe "actif" là où elle n'est pas, mais va aussi la supprimer des balises "li" où elle est.

addClass ignore juste l'ajout si la classe est déjà présente. Il ne l'ajoute pas deux fois. Ou alors je rate un truc gros comme une maison...

Si la classe est déjà présente, addClass ne fera absolument rien. Mais la question est bizarre, on ne voit pas pourquoi il faudrait cibler les li SANS cette classe pour en réalité faire en sorte que toutes les li aient la classe. C'est ainsi qu'elle est tournée en tout cas.

En tout cas, ils m'ont appris des petites choses toujours intéressantes. Même si on devine la bonne réponse, ça va m'aider à optimiser encore un peu mon code :) Donc merci pour ce petit Quiz.

La bonne réponse pour la 4, qui n'aura pas d'effet non demandé dans l'énoncé (cad retirer la classe actif sur les <li> l'aillant déjà) serait:

$("li").toggleClass("actif",true);

true en second paramètre de toggleClass indique qu'on veut l'ajouter et fera ignorer les <li> possédant déjà la classe. A l'inverse false en 2nd paramètre indiquerait qu'on veut la retirer.

Non, c'est

$("li").addClass("actif");

Le second paramètre de toggleClass ne sert jamais à désigner un booléen statique, il ne peut avoir d'utilité que si dans votre code, vous avez parfois besoin d'ajouter, et parfois besoin d'enlever. C'est une facilité de code pour éviter d'écrire un test avant d'utiliser addClass ou removeClass.

Je me répète (mais ça peut servir), addClass utilisé sur un élément qui a déjà la classe est ignoré.

http://jsfiddle.net/Tz2Ur/

La réponse à la 4 considérée comme juste va enlever la classe actif où elle est, et la rajouter où elle n'était pas. C'est peut être ce qu'il faut comprendre, mais ça n'a pas l'air d'être le cas des autres non plus.

Commentaires clos