Deux nouveaux quiz jQuery

Actualité par (Alsacréations, Strasbourg)
Créé le (13915 lectures)
Tags : 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

JDW a dit le

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...

dew a dit le

On précise bien "si celle-ci n'est pas présente". Par élimination c'est la seule réponse possible.

masseuro a dit le

Oui mais ça enlève aussi les actif déjà présent... la question est tordue... Je me suis fait la même réflexion

JDW a dit le

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.

kenor a dit le

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.

Julien Vernet a dit le

Toujours aussi ludique et instructif.

Karedas a dit le

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.

JDW a dit le

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.