fix for #4512 and minor sizzle updates
[jquery.git] / src / selector.js
index b404064..b58507d 100644 (file)
@@ -977,11 +977,17 @@ jQuery.expr = Sizzle.selectors;
 jQuery.expr[":"] = jQuery.expr.filters;
 
 Sizzle.selectors.filters.hidden = function(elem){
-       return elem.offsetWidth === 0 && elem.offsetHeight === 0;
+       var width = elem.offsetWidth, height = elem.offsetHeight,
+                force = /^tr$/i.test( elem.tagName ); // ticket #4512
+       return ( width === 0 && height === 0 && !force ) ?
+               true :
+                       ( width !== 0 && height !== 0 && !force ) ?
+                               false :
+                                       !!( jQuery.curCSS(elem, "display") === "none" );
 };
 
 Sizzle.selectors.filters.visible = function(elem){
-       return elem.offsetWidth > 0 || elem.offsetHeight > 0;
+       return !Sizzle.selectors.filters.hidden(elem);
 };
 
 Sizzle.selectors.filters.animated = function(elem){