11540 sujets

JavaScript, DOM et API Web HTML5

Bonjour à toutes et à tous!

Voici mon premier post sur ce forum Smiley smile Et oui, d'habitude, je le consulte lorsque je bloque sur certaine chose... Mais là, pas moyen de résoudre mon problème!

Voici mon histoire...:

En gros, j'ai 3 cellules d'un tableaux et lorsque je clique sur l'une d'entre elle, il y a un genre de "tooltip" qui s'ouvre en dessous. Là, j'utilise SlideDown:

$(document).ready(function() {
				
	$("#table td").click(function() {
				
	    $('.arrow_box').hide(400); // On masque tous les div
				
		if($("#arrow_" + this.id).is(':visible')){
			$("#arrow_" + this.id).hide(400);
		}else{
			$("#arrow_" + this.id).slideUp(800).fadeIn(1000);
		}
	});	
});


J'ai un truc du style:

<table id="table">
   <tr>
       <td id="1"></td>
       <td id="2"></td>
       <td id="3"></td>
   </tr>
   <tr>
       <td>
           <div class="arrow_box" id="arrow_1"></div>
       </td>
       <td>
           <div class="arrow_box" id="arrow_2"></div>
       </td>
       <td>
           <div class="arrow_box" id="arrow_3"></div>
       </td>
   </tr>
</table>


Du coup, lorsque je clique sur la cellule qui à id="1", j'ai le div arrow_1 qui se déroule, id="2" div arrow_2 qui se déroule etc. Mais ce que j'aimerais bien, c'est que si je re-clique sur celle qui est ouverte, elle se referme, et donc là, elles sont toutes fermées...

Pour l'instant, quand je clique sur une puis sur l'autre, celle d'avance se referme. Mais si je clique sur celle qui est ouverte, elle se ferme puis se ré-ouvre (normal, vu le code... Mais je ne sait pas comment faire pour savoir laquelle est active...

Je m'acharne sur ça depuis 2h et je pense que c'est vraiment pas compliqué en soit, mais impossible d'y arriver Smiley ohwell

Merci de votre aide!

EDIT: Voilà, j'ai trouvé une solution, mais je ne pense pas que ça soit la meilleur. Enfin, si quelqu'un à une proposition plus propre, il est le bienvenu Smiley smile J'ai édité le code pour ceux qui voudrait le même résultat que moi Smiley smile
Modifié par Lapinou (24 Jan 2013 - 23:46)