MCPcopy Create free account
hub / github.com/JsAaron/jQuery / showHide

Function showHide

2.1.1/test/jquery-2.1.1.js:5824–5873  ·  view source on GitHub ↗
( elements, show )

Source from the content-addressed store, hash-verified

5822}
5823
5824function showHide( elements, show ) {
5825 var display, elem, hidden,
5826 values = [],
5827 index = 0,
5828 length = elements.length;
5829
5830 for ( ; index < length; index++ ) {
5831 elem = elements[ index ];
5832 if ( !elem.style ) {
5833 continue;
5834 }
5835
5836 values[ index ] = data_priv.get( elem, "olddisplay" );
5837 display = elem.style.display;
5838 if ( show ) {
5839 // Reset the inline display of this element to learn if it is
5840 // being hidden by cascaded rules or not
5841 if ( !values[ index ] && display === "none" ) {
5842 elem.style.display = "";
5843 }
5844
5845 // Set elements which have been overridden with display: none
5846 // in a stylesheet to whatever the default browser style is
5847 // for such an element
5848 if ( elem.style.display === "" && isHidden( elem ) ) {
5849 values[ index ] = data_priv.access( elem, "olddisplay", defaultDisplay(elem.nodeName) );
5850 }
5851 } else {
5852 hidden = isHidden( elem );
5853
5854 if ( display !== "none" || !hidden ) {
5855 data_priv.set( elem, "olddisplay", hidden ? display : jQuery.css( elem, "display" ) );
5856 }
5857 }
5858 }
5859
5860 // Set the display of most of the elements in a second loop
5861 // to avoid the constant reflow
5862 for ( index = 0; index < length; index++ ) {
5863 elem = elements[ index ];
5864 if ( !elem.style ) {
5865 continue;
5866 }
5867 if ( !show || elem.style.display === "none" || elem.style.display === "" ) {
5868 elem.style.display = show ? values[ index ] || "" : "none";
5869 }
5870 }
5871
5872 return elements;
5873}
5874
5875jQuery.extend({
5876 // Add in style property hooks for overriding the default

Callers 1

jquery-2.1.1.jsFile · 0.70

Calls 2

isHiddenFunction · 0.70
defaultDisplayFunction · 0.70

Tested by

no test coverage detected