From: Brandon Aaron Date: Mon, 18 May 2009 15:36:36 +0000 (+0000) Subject: fix :hidden and :visible selectors. fixes #4512 X-Git-Url: http://git.asbjorn.biz/?p=jquery.git;a=commitdiff_plain;h=b97b886fcd212b7a4c8c883b1afb04b6bd071545 fix :hidden and :visible selectors. fixes #4512 --- diff --git a/src/selector.js b/src/selector.js index b404064..5bde726 100644 --- a/src/selector.js +++ b/src/selector.js @@ -977,11 +977,21 @@ 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; + return ( width === 0 && height === 0 ) ? + true : + ( width !== 0 && height !== 0 ) ? + false : + !!( jQuery.curCSS(elem, "display") === "none" ); }; Sizzle.selectors.filters.visible = function(elem){ - return elem.offsetWidth > 0 || elem.offsetHeight > 0; + var width = elem.offsetWidth, height = elem.offsetHeight; + return ( width === 0 && height === 0 ) ? + false : + ( width > 0 && height > 0 ) ? + true : + !!( jQuery.curCSS(elem, "display") !== "none" ); }; Sizzle.selectors.filters.animated = function(elem){