11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour, je suis entrain de faire des tests HTML + JAVASCRIPT sur les div qu'on peut déplier et replier en fonction d'un lien ou l'on clique.

Ma question est, j'ai utilisé cette fonction javascript (JQUERY) pour pouvoir déplier mes div :

<script type="text/javascript">
$(document).ready(function(){
  //hide the all of the element with class msg_body
	$(".msg_body").hide();
	$(".msg_head").mouseover(function(){
    $(this).next(".msg_body").slideDown('medium');
	})
});


Maintenant j'aimerais que quand je clique sur un autre lien, mon menu qui est déplié ce replie automatiquement pendant que le nouveau div se déplie.

Est-ce que quelqu'un pourrait m'aider à comprendre svp?

Merci. Smiley biggrin
Tu peux inclure un
$(this).siblings().slideUp()

(à adapter selon ton code html)
Jette un oeil sur la doc de jquery, partie 'traversing'.
SlideToggle peut également t'être utile
Modifié par paolo (23 Aug 2010 - 13:07)
Administrateur
Bonjour et bienvenue, Smiley smile

tu peux regarder dans la partie Apprendre le tuto du menu accordéon : il comporte cette fonctionnalité. En résumé, il s'agit lors d'un clic sur un lien dans l'état replié de d'abord replier tous ceux qui sont dépliés (ou tous, sans vérifier) puis de déplier celui qui est cliqué.
Un effet secondaire à éviter : cliquer 15 fois très rapidement et observer l'item se déplier-remplier 7,5 fois Smiley confus