2009-07-06 14 views
35

¿Cómo comprobar si un elemento en particular está oculto para el usuario? En mi código, bajo ciertas condiciones, este código será llamado:JQuery: compruebe si un elemento está oculto del usuario

$("#VersionSelectField").hide('fast'); 

Así que hay que asegurarse de que si $("#VersionSelectField") está oculto, entonces yo no tengo que validar el valor en su interior cuando presente la forma (Yo uso JQuery Validate library para este propósito).

¿Alguna idea?

Respuesta

74
$("#VersionSelectField").is(':hidden'); 
+0

Eso solo comprobará si se trata de una entrada oculta. – Rob

+7

@Rob: esto realmente verificará si no es visible para el usuario. http://docs.jquery.com/Selectors/hidden –

+0

no estaba al tanto de ese selector. Gracias por traerlo a la luz para mí. – Rob

0

Probar $("#versionselectfield[display='none']").length > 0.

+0

No estoy seguro de por qué se votó negativamente. ¿Alguien quiere explicar por qué revisar el atributo de visualización es la respuesta incorrecta aquí? – Rob

+1

No te voté pero la etiqueta sería style = "display: none", por lo tanto, tu selector no funciona – redsquare

+0

Rob: siempre puedes marcar un mod si sospechas de ti. – redsquare

8

Esto funciona para mí:

$("#VersionSelectField").css("display") == "none"; 
0

puede usar la devolución de llamada del método() ocultar. Por ejemplo:

$("#VersionSelectField").hide('fast', function() { 
    GlobalVersionSelectFieldHidden = true; 
}); 

anterior es sólo un método para hacer uso de eso, básicamente, la devolución de llamada sólo se activa cuando la animación terminada (es decir, totalmente oculto). Por supuesto, contaminar el ámbito de la variable global es muy malo, pero solo un ejemplo rápido.

O bien, la comprobación de si la pantalla es "ninguna" como Marcar sugiere también que funcione, ya que el efecto JQ ocultará completamente las cosas usando esa propiedad de CSS en particular.

Cuestiones relacionadas