mirror of
https://github.com/jquery/jquery.git
synced 2024-11-23 02:54:22 +00:00
86419b10bf
Fixes gh-1767 Fixes gh-2071 Closes gh-2180
48 lines
986 B
JavaScript
48 lines
986 B
JavaScript
define([
|
|
"../data/var/dataPriv"
|
|
], function( dataPriv ) {
|
|
|
|
function showHide( elements, show ) {
|
|
var display, elem,
|
|
values = [],
|
|
index = 0,
|
|
length = elements.length;
|
|
|
|
// Determine new display value for elements that need to change
|
|
for ( ; index < length; index++ ) {
|
|
elem = elements[ index ];
|
|
if ( !elem.style ) {
|
|
continue;
|
|
}
|
|
|
|
display = elem.style.display;
|
|
if ( show ) {
|
|
if ( display === "none" ) {
|
|
// Restore a pre-hide() value if we have one
|
|
values[ index ] = dataPriv.get( elem, "display" ) || "";
|
|
}
|
|
} else {
|
|
if ( display !== "none" ) {
|
|
values[ index ] = "none";
|
|
|
|
// Remember the value we're replacing
|
|
dataPriv.set( elem, "display", display );
|
|
}
|
|
}
|
|
}
|
|
|
|
// Set the display of the elements in a second loop
|
|
// to avoid the constant reflow
|
|
for ( index = 0; index < length; index++ ) {
|
|
if ( values[ index ] != null ) {
|
|
elements[ index ].style.display = values[ index ];
|
|
}
|
|
}
|
|
|
|
return elements;
|
|
}
|
|
|
|
return showHide;
|
|
|
|
});
|