diff options
Diffstat (limited to 'libs/bower_components/jquery/src/css/hiddenVisibleSelectors.js')
-rw-r--r-- | libs/bower_components/jquery/src/css/hiddenVisibleSelectors.js | 34 |
1 files changed, 28 insertions, 6 deletions
diff --git a/libs/bower_components/jquery/src/css/hiddenVisibleSelectors.js b/libs/bower_components/jquery/src/css/hiddenVisibleSelectors.js index 0bd86c80ff..e75ff5fc39 100644 --- a/libs/bower_components/jquery/src/css/hiddenVisibleSelectors.js +++ b/libs/bower_components/jquery/src/css/hiddenVisibleSelectors.js @@ -1,20 +1,42 @@ -define([ +define( [ "../core", + "../var/document", "./support", "../selector", "../css" -], function( jQuery, support ) { +], function( jQuery, document, support ) { + +function getDisplay( elem ) { + return elem.style && elem.style.display || jQuery.css( elem, "display" ); +} + +function filterHidden( elem ) { + + // Disconnected elements are considered hidden + if ( !jQuery.contains( elem.ownerDocument || document, elem ) ) { + return true; + } + while ( elem && elem.nodeType === 1 ) { + if ( getDisplay( elem ) === "none" || elem.type === "hidden" ) { + return true; + } + elem = elem.parentNode; + } + return false; +} jQuery.expr.filters.hidden = function( elem ) { + // Support: Opera <= 12.12 // Opera reports offsetWidths and offsetHeights less than zero on some elements - return elem.offsetWidth <= 0 && elem.offsetHeight <= 0 || - (!support.reliableHiddenOffsets() && - ((elem.style && elem.style.display) || jQuery.css( elem, "display" )) === "none"); + return support.reliableHiddenOffsets() ? + ( elem.offsetWidth <= 0 && elem.offsetHeight <= 0 && + !elem.getClientRects().length ) : + filterHidden( elem ); }; jQuery.expr.filters.visible = function( elem ) { return !jQuery.expr.filters.hidden( elem ); }; -}); +} ); |