Lo mejor seria usar un auxiliar (o variable Global)
Mira ya colgaste el Hilo anterior y te lo dejo en este hilo Colega.
Si lo que deseas, es tener SOLO un slide abierto a la vez.
Facil, A los 5 slides ponles una clase.
agregas los 5 slides a un array con la funcion find().
Al hacer el evento CLICK, cierras todos los SLIDES, y abres el que se pulso, para saber cual fue el que se pulso, usa la funcion index(), o eq()
[eq() no la he usado] **Uffs... me tomo media hora.. te cuento la funciones.
-clases que distinguen si los slides se abren
hacia arriba o
hacia abajo.
-si pulsas boton ABRE, si pulsas de nuevo boton CIERRA
-si abres un slide, y despues abres todo, el anterior lo cierra automaticamente. (Solo un slide puede estar abierto a la VEZ).
te dejo un EJEMPLO con 4 Slides:
code HTML:
Código HTML:
Ver original<!--
NO OLVIDES AGREGAR EN EL HEAD
LAS LIBRERIAS jQuery Y jQueryUI
-->
<div class="boton">boton 1
</div> <div id="slide1" class="igual divtop">DIV 1
<br/>ABAJO hacia ARRIBA
</div> <div class="boton">boton 2
</div> <div id="slide2" class="igual divtop">DIV 2
<br/>ABAJO hacia ARRIBA
</div> <div class="boton">boton 3
</div> <div id="slide3" class="igual divbot">DIV 3
<br/>ARRIBA hacia ABAJO
</div> <div class="boton">boton 4
</div> <div id="slide4" class="igual divbot">DIV 4
<br/>ARRIBA hacia ABAJO
</div>
code CSS:
Código CSS:
Ver original#uno, #dos, #tres, #cuatro {position:absolute; width:200px; height:300px; background:#DDD;}
#uno {top:10px; left:10px;}
#dos {top:10px; right:10px;}
#tres {top:320px; right:40px;}
#cuatro {top:340px; left:30px;}
.boton {position:absolute; bottom:0; right:0; background:green; width:50px; height:50px; cursor:pointer;}
#slide1, #slide2, #slide3, #slide4 { display:none; float:left; width:149px; height:299px; background:blue;}
code jQuery:
Código Javascript
:
Ver original$(document).ready(function() {
var aux = -1; //iniciamos la variable que nos ayudara a saber si ya se pincho el boton
var array = $(this).find(".igual"); //obtenemos todos los Slide GRACIAS a la clase igual
//AQUI DEFINIMOS LAS FUNCIONES DE LOS EFECTOS SLIDE SHOW SLIDE HIDE
//para ello nos apoyamos de clases como divtop, divbot
//Que significan hacia donde cierra el SLIDE (arriba o abajo)
$(".boton").click(function() {
cualSlide = $(this).index(".boton"); //saber que boton es, y asi saber cual slide es
clase = $(array[cualSlide]).attr("class").split(" ");
if(aux != cualSlide) {
if(clase[1] == "divtop") {
$(".divtop").hide("slide",{direction:"down"},2000);
$(".divbot").hide("slide",{direction:"up"},2000);
$(array[cualSlide]).show("slide",{direction:"down"},2000);
} else if((clase[1]) == "divbot") {
$(".divtop").hide("slide",{direction:"down"},2000);
$(".divbot").hide("slide",{direction:"up"},2000);
$(array[cualSlide]).show("slide",{direction:"up"},2000);
}
aux = cualSlide;
} else if(aux == cualSlide) {
if(clase[1] == "divtop") {
$(".divtop").hide("slide",{direction:"down"},2000);
} else if((clase[1]) == "divbot") {
$(".divbot").hide("slide",{direction:"up"},2000);
}
aux = -1;
}
});
});
Aqui en vivo el Ejemplo:
http://kurosaki.host22.com/jqueryui/UI-practica1.html
Deberia cobrarte? Me he venido a un ciberCafe a pastearte el code… Jaaja, son $2 USD Jaaja!! Broma broma
Saludos.