2009-07-06 54 views
35

如何检查某个特定元素是否对用户隐藏?在我的代码,在某些情况下,该代码将被称为:JQuery:检查用户是否隐藏元素

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

所以我要确保,如果$("#VersionSelectField")是隐藏的,那么我就不会去验证它里面的价值,当我提交表单(为此我使用JQuery Validate library)。

任何想法?

回答

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

这将只是检查它是否是隐藏的输入。 – Rob 2009-07-06 05:16:52

+7

@Rob - 这实际上会检查用户是否看不到它。 http://docs.jquery.com/Selectors/hidden – 2009-07-06 05:58:35

0

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

8

这个工作对我来说:

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

您可以使用隐藏()方法的回调。 例如:

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

以上是唯一一个利用该方法,基本上回调只会火灾时,动画完成后(即,完全隐藏)。当然,污染全球变量的范围很顽皮,但只是一个简单的例子。

或者,检查显示是否为“无”像马克建议也适用,因为JQ效果将完全隐藏使用该特定css属性的东西。