Foros del Web » Programando para Internet » Jquery »

jQuery acordeon customizar

Estas en el tema de jQuery acordeon customizar en el foro de Jquery en Foros del Web. Hola amigos, Mis conocimientos de jquery son muy pobres u.U Tengo este pedazo de código que utilizo para mis acordeones. Código: $(".collapse ul").hide(); $(".collapse h3").click(function() ...
  #1 (permalink)  
Antiguo 18/04/2012, 11:29
 
Fecha de Ingreso: abril-2012
Mensajes: 6
Antigüedad: 12 años
Puntos: 0
jQuery acordeon customizar

Hola amigos,

Mis conocimientos de jquery son muy pobres u.U

Tengo este pedazo de código que utilizo para mis acordeones.

Código:
$(".collapse ul").hide();
			$(".collapse h3").click(function() {
				$(this).next("ul").slideToggle("slow").siblings("ul:visible").slideUp("slow");
				$(this).toggleClass("active");
				$(this).siblings("h3").removeClass("active");
			});
Esto llama de alguna manera al H3 para que tenga que un active y cuando click en otro h3 pues el otro se desactiva y se activa el que has clickeado último y asi...

Lo que necesito es poder activar al hijo de este ya que yo le agregado un SPAN dentro del H y quisiera que este se activara/desactivará de la misma manera que el h3 aunque no hay necesidad de ponerle el active para H3 tan solo al SPAN que se encuentra dentro de este.

Código:
<h3><span>Texto</span></h3>
Esto del span que le agregue es por un tema de diseño para cambiar de background y asi..

Busque algunos tutos pero no lo encontre como solucionar u.U

Espero que me puedan ayudar.

Saludos
  #2 (permalink)  
Antiguo 03/05/2012, 14:54
 
Fecha de Ingreso: abril-2012
Mensajes: 6
Antigüedad: 12 años
Puntos: 0
Respuesta: jQuery acordeon customizar

La solución para esto es

Código:
$('h3.sub').click(function() {
	$('h3.sub span').removeClass('active');
	$('.block').slideUp('normal');
	if($(this).next().is(':hidden') == true) {
		$(this).find('span').addClass('active');
		$(this).next().slideDown('normal');
	}
});
$('.block').hide();
  #3 (permalink)  
Antiguo 04/05/2012, 03:52
 
Fecha de Ingreso: junio-2009
Mensajes: 128
Antigüedad: 14 años, 10 meses
Puntos: 17
Respuesta: jQuery acordeon customizar

Código:
$('h3.sub').click(function() {
	$('h3.sub span').removeClass('active');
	$('.block').slideUp('normal');
	if($(this).next().is(':hidden') == true) {
		$(this +'> span').addClass('active');
		$(this).next().slideDown('normal');
	}
});
$('.block').hide();
Si usas el selector diramente en lugar de realizar find(), el resultado sera el mismo, pero con un coster menor de recursos, ya que find escanea la estructura del dom numerando los elementos que encuentre, proceso el cual se lleva a acabo cada vez que se active la funcion. Como sabemos que el span es siempre hijo directo del h3 y que solo hay uno por cada, creo que te puede interesar mas hacerlo asi. (es basicamente lo mismo que plantea testeador en la primera linea de la funcion (marcada en azul)).

Espero que te sirva de algo el apunte. Suerte!

Etiquetas: acordeon, customizar
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:34.