Código HTML:
Ver original
La clase "ocultable" no tiene estilos asociados, la uso sólo para detectar el tr luego con jquery. La clase "oculto" simplemente tiene como estilo "display: none".
Bien, en los tr que no están ocultos se muestra cierta información y cuando el usuario pulsa sobre un enlace contenido en ese tr quiero que se haga visible el tr oculto siguiente. Y si ya estuviera visible, que se oculte. Esto es fácil y no me da problemas.
Código Javascript:
Ver original
$('.nombre_alumno').click(function() { var ref = $(this).parents("tr").next(); if (ref.hasClass("oculto")) { ref.removeClass("oculto"); } else { ref.addClass("oculto"); } });
Además, tengo dos enlaces fuera de la tabla para mostrar todos los tr ocultos y para ocultarlos. Y aquí es donde viene el problema. Este es el código que uso para esto:
Código Javascript:
Ver original
$('.desplegar').click(function() { // Selecciono todos los tr var ref = $(".central_section").find("#mostrar_trabajo_wrapper").find("tr"); // Si tienen la clase oculto, la quito if (ref.hasClass("oculto")) { ref.removeClass("oculto"); } }); $('.recoger').click(function() { // Selecciono todos los tr con la clase ocultable var ref = $(".central_section").find("#mostrar_trabajo_wrapper").find(".ocultable"); // Si no tienen la clase oculto, la añado if (!ref.hasClass("oculto")) { ref.addClass("oculto"); } });
La función de desplegar funciona perfectamente, pero la de recoger sólo funciona si ninguno los tr con la clase "ocultable" tienen la clase "oculto", es decir, que si hay desplegado al menos uno de los tr, no funciona.
Si me pudierais decir donde está el fallo os lo agradecería.
Saludos.