Jquery .show () no revela un div con visibilidad de oculto


81

Pregunta básica de jQuery:

Estoy tratando de revelar un divque ha sido marcado como oculto usando jQuery. Pero no lo entiendo del todo

He creado un JSFiddle aquí: http://jsfiddle.net/VwjxJ/

Básicamente, quiero usar en style="visibility: hidden;"lugar de style="display: none;"como quiero que se mantenga el espacio del elemento oculto

He intentado usar show(), fadeIn()etc. pero ninguno funciona (lo hacen para style="display: none;")

¿Qué estoy haciendo mal?


6
Intente cambiar el marco en su jsfiddle a jQuery.
2011

1
@ a'r: El problema persiste . Aquí hay una versión corregida: jsfiddle.net/fkling/9Z6nt/19
Felix Kling

En su ejemplo, no configuró la biblioteca correcta para su proyecto, en "elegir marco" debe elegir "jQuery".
megas

5
+1 para contrarrestar los votos negativos ... la gente debería pasar más tiempo tratando de entender el problema ...
Felix Kling

5
Creo que fue porque otras personas pensaron que simplemente se olvidó de seleccionar la biblioteca correcta (y después de cambiarla, pareció funcionar). Pero no leyeron su pregunta y el código detenidamente. ¿Por qué más el primer comentario obtendría 5 votos a favor? Sí, tal vez su jsfiddle no era correcto, pero eso no es motivo para votos negativos en mi opinión. El problema estaba claro incluso sin eso (y era fácil de solucionar).
Felix Kling

Respuestas:


123

Si lo ha ocultado con visibility:hidden, puede mostrarlo con jQuery por

$(".Deposit").css('visibility', 'visible');

Y en el violín te falta jQuery. Aquí hay una demostración: http://jsfiddle.net/9Z6nt/20/


document.readyno es necesario. Se ejecuta el código onLoad(cuadro de selección encima de los marcos).
Felix Kling

Oh, no me di cuenta de eso, gracias. Pero será útil en código real si se llama a JS antes de que DOM esté listo.
Muhammad Usman

1
@Imray Lo hace. No es por la solución de visibility:hidden, solo arreglé la suya.
Muhammad Usman

11

Según la documentación de JQuery, .show()"es aproximadamente equivalente a llamar .css('display', 'block'), excepto que la propiedad de visualización se restaura a lo que era inicialmente". Establezca el estilo explícitamente en su lugar. Podrías usar una clase CSS

.hidden{
    visibility: hidden;
}
.shown{
    visibility: visible;
}

y el conjunto está usando

$("#yourdiv").removeClass("hidden").addClass("shown");

$("#yourdiv").toggleClass('hidden'); no hay necesidad de la clase "mostrada"
Alexander Bird

1
No es exactamente lo mismo. Depende de posibles anulaciones más generales en otras partes del CSS, pero por lo general probablemente se salga con la suya, sí.
Polymorphix

7

Si desea que se mantenga el espacio del elemento oculto, use opacidad.

es decir:

$('div').fadeTo(500,1) //show
$('div').fadeTo(500,0) //hide

por ejemplo:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div style='opacity:0'>
  Test opacity
</div>


<button onclick="$('div').fadeTo(500,1);">Show</button>
<button onclick="$('div').fadeTo(500,0);">Hide</button>


3

Oye, tu violín está funcionando, solo elige framework jQuery en el violín. Si su visibilidad está oculta, cambie la propiedad de visibilidad css a visible.

(".Deposit").css('visibility','visible');


2

aquí vamos :)

$(".Deposit").show();

    $(".Deposit").fadeOut(500,function(){
        $(this).css({"display":"block","visibility":"hidden"});

    });

sí, ese es el boleto!
Kirby

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.