Bonjour,
Je souhaiterai réaliser en JQuery une sorte de "spoiler". J'aimerai cacher du texte et le faire apparaitre lorsque je clique sur un lien.
Pour cela, j'ai repris le tutoriel sur le menu accordéon que j'ai adapté à ma sauce.
Voici le html :
Voici le javascript :
Le code permet bien de cacher le texte, en revanche, lorsque l'on clique sur le lien, le texte n'apparait pas... Vous pouvez tester ici.
Je ne vois pas mon erreur. Où est elle?!
Merci!
Je souhaiterai réaliser en JQuery une sorte de "spoiler". J'aimerai cacher du texte et le faire apparaitre lorsque je clique sur un lien.
Pour cela, j'ai repris le tutoriel sur le menu accordéon que j'ai adapté à ma sauce.
Voici le html :
<div class="toggleSubMenu">
<h4><span>Fraise</span></h4>
<div class="subMenu">
<p>La fraise est formée par l'ensemble du réceptacle charnu de la fleur. Elle a une couleur rouge ou jaune blanchâtre selon les variétés, et une forme ovoïde oblongue plus ou moins arrondie.Au sens botanique du terme, les « vrais » fruits sont en fait les akènes, ces petits grains secs (communément appelés à tort pépins alors que ce dernier terme ne devrait désigner que leur minuscule graine centrale) disposés régulièrement sur la fraise, de couleur verte à brune, et renfermant chacun soit un ovule (non fécondé) soit une graine (qui porte alors un germe lorsque la fraise arrive à maturité).Le corps charnu de la fraise étant formé par le réceptacle floral (induvie) est ce que l'on consomme avec ou sans les akènes (l’épépinage des fraises consiste à ôter ces fruits secs du reste de la chair pulpeuse pour la préparation de gelées). Ce sont les akènes qui produisent une hormone permettant au faux-fruit de grossir.</p>
</div>
<h4><span>Pomme</span></h4>
<div class="subMenu">
<p>La pomme est le fruit du pommier et plus particulièrement du pommier domestique, arbre fruitier largement cultivé. L'étude de la culture des pommes constitue une partie de la pomologie, la pomologie englobant tous les fruits à pépins. La pomme est comestible et a un goût sucré ou acidulé selon les variétés.Généralement, on distingue trois types de pommes alimentaires : les pommes à cidre, les pommes de table ou pommes à couteau et les pommes à cuire qui appartiennent à un des deux premiers types mais supportent bien la cuisson. Ces trois types sont issus de l'espèce Malus pumila qui compte plus de 20 000 variétés à travers le monde.Plusieurs boissons sont élaborées à base de pommes, en particulier le jus de pomme sans fermentation, sucré et non alcoolisé, et le cidre produit à partir de la fermentation de ce jus.</p>
</div>
<h4><span>Citron</span></h4>
<div class="subMenu">
<p>Le citron est un agrume. C'est le fruit du citronnier. Le citronnier (Citrus limonum) est un arbuste de 5 à 10 m de haut, à feuilles persistantes.Le fruit a une écorce lisse jaune éclatant. Sa chair est juteuse, très acide et riche en vitamine C. De l'écorce jaune on extrait une huile essentielle qui contient entre autres substances du limonène et du citral.Les citrons doux sont les fruits d'un cultivar particulier et se consomment comme des oranges : Citrus limon (L.) Burm. f. (classification de Tanaka).</p>
</div>
</div>
Voici le javascript :
$(document).ready( function () {
// On cache les sous-menus :
$(".subMenu").hide();
// On sélectionne tous les items de liste portant la classe "toggleSubMenu"
// et on remplace l'élément span qu'ils contiennent par un lien :
$(".toggleSubMenu span").each( function () {
// On stocke le contenu du span :
var TexteSpan = $(this).text();
$(this).replaceWith('<a href="" title="Afficher le sous-menu">' + TexteSpan + '<\/a>') ;
} ) ;
// On modifie l'évènement "click" sur les liens dans les items de liste
// qui portent la classe "toggleSubMenu" :
$(".toggleSubMenu").click( function () {
// Si le sous-menu était déjà ouvert, on le referme :
if ($(this).next(".subMenu:visible").length != 0) {
$(this).next(".subMenu").slideUp("normal", function () { $(this).parent().removeClass("open") });
}
// Si le sous-menu est caché, on ferme les autres et on l'affiche :
else {
$(".subMenu").slideUp("normal", function () { $(this).parent().removeClass("open") });
$(this).next(".subMenu").slideDown("normal", function () { $(this).parent().addClass("open") });
}
// On empêche le navigateur de suivre le lien :
return false;
});
} ) ;
Le code permet bien de cacher le texte, en revanche, lorsque l'on clique sur le lien, le texte n'apparait pas... Vous pouvez tester ici.
Je ne vois pas mon erreur. Où est elle?!

Merci!