2015-08-16 06:59:58 +00:00
|
|
|
define( [
|
2015-10-18 19:09:59 +00:00
|
|
|
"../core",
|
2015-10-09 19:52:29 +00:00
|
|
|
"../data/var/dataPriv",
|
|
|
|
"../css/var/isHidden"
|
2015-10-18 19:09:59 +00:00
|
|
|
], function( jQuery, dataPriv, isHidden ) {
|
2015-04-02 20:57:33 +00:00
|
|
|
|
|
|
|
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" ) {
|
2015-08-16 06:59:58 +00:00
|
|
|
|
2015-04-02 20:57:33 +00:00
|
|
|
// 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;
|
|
|
|
}
|
|
|
|
|
2015-10-09 19:52:29 +00:00
|
|
|
jQuery.fn.extend( {
|
|
|
|
show: function() {
|
|
|
|
return showHide( this, true );
|
|
|
|
},
|
|
|
|
hide: function() {
|
|
|
|
return showHide( this );
|
|
|
|
},
|
|
|
|
toggle: function( state ) {
|
|
|
|
if ( typeof state === "boolean" ) {
|
|
|
|
return state ? this.show() : this.hide();
|
|
|
|
}
|
|
|
|
|
|
|
|
return this.each( function() {
|
|
|
|
if ( isHidden( this ) ) {
|
|
|
|
jQuery( this ).show();
|
|
|
|
} else {
|
|
|
|
jQuery( this ).hide();
|
|
|
|
}
|
|
|
|
} );
|
|
|
|
}
|
|
|
|
} );
|
2015-04-02 20:57:33 +00:00
|
|
|
|
2015-11-10 17:44:35 +00:00
|
|
|
return showHide;
|
2015-08-16 06:59:58 +00:00
|
|
|
} );
|