Bonjour,
En utilisant jquery je souhaiterais reproduire l'effet menu déroulant que l'on trouve partout, mais sur un titre et son sous-titre.
Après avoir assimilé qq tutos sur la question et sur le fonctionnement du js plus généralement j'arrive à ce code simple qui ne fonctionne pourtant pas ...
une idée?
Je vous remercie par avance!
Je vous remercie de mettre fin à mon calvaire, je ne comprends pas pourquoi cela ne marche pas ... et je suis sûr que cela est du à une bete erreur de syntaxe ...
Cordialement,
Clément
En utilisant jquery je souhaiterais reproduire l'effet menu déroulant que l'on trouve partout, mais sur un titre et son sous-titre.
Après avoir assimilé qq tutos sur la question et sur le fonctionnement du js plus généralement j'arrive à ce code simple qui ne fonctionne pourtant pas ...
une idée?
Je vous remercie par avance!
<div id="entete">
<h1>Entete</h1>
<p class="sous-titre">
Lorem ipsum dolor sit amet.
</p>
</div><!-- fin entete -->
<script type="text/javascript">
<!--
$(document).ready( function () {
// On cache le sous-titre :
$("#entete p.sous-titre").hide();
// On sélectionne le titre et on lui rajoute un lien (pour avoir un truc propre)
$("#entete h1").each( function () {
// On stocke le contenu du span :
var TexteTitre = $(this).text();
$(this).replaceWith('<a href="" title="Affiche le sous-titre">' + Textetitre + '<\/a>') ;
} ) ;
// On modifie l'évènement "click" sur les liens dans les items de liste
$("#entete h1 > a").click( function () {
// Si le sous-menu était déjà ouvert, on le referme :
if ($("p.sous-titre:visible").length != 0) {
$("p.sous-titre").slideUp("normal");
}
// Si le sous-menu est caché ... on l'ouvre!
else {
$("#entete p.sous-titre").slideDown("normal");
}
// Au passage je n'ai pas compris pourquoi on devait empêcher le navigateur de suivre le lien avec return false dans la mesure où le lien créé est vide
return false;
});
} ) ;
// -->
</script>
Je vous remercie de mettre fin à mon calvaire, je ne comprends pas pourquoi cela ne marche pas ... et je suis sûr que cela est du à une bete erreur de syntaxe ...
Cordialement,
Clément