OSDN Git Service

Modify the dependency on path
[bytom/vapor.git] / tools / side_chain_tool / web / node_modules / jquery / src / css / showHide.js
1 define( [
2         "../core",
3         "../data/var/dataPriv",
4         "../css/var/isHiddenWithinTree"
5 ], function( jQuery, dataPriv, isHiddenWithinTree ) {
6
7 "use strict";
8
9 var defaultDisplayMap = {};
10
11 function getDefaultDisplay( elem ) {
12         var temp,
13                 doc = elem.ownerDocument,
14                 nodeName = elem.nodeName,
15                 display = defaultDisplayMap[ nodeName ];
16
17         if ( display ) {
18                 return display;
19         }
20
21         temp = doc.body.appendChild( doc.createElement( nodeName ) );
22         display = jQuery.css( temp, "display" );
23
24         temp.parentNode.removeChild( temp );
25
26         if ( display === "none" ) {
27                 display = "block";
28         }
29         defaultDisplayMap[ nodeName ] = display;
30
31         return display;
32 }
33
34 function showHide( elements, show ) {
35         var display, elem,
36                 values = [],
37                 index = 0,
38                 length = elements.length;
39
40         // Determine new display value for elements that need to change
41         for ( ; index < length; index++ ) {
42                 elem = elements[ index ];
43                 if ( !elem.style ) {
44                         continue;
45                 }
46
47                 display = elem.style.display;
48                 if ( show ) {
49
50                         // Since we force visibility upon cascade-hidden elements, an immediate (and slow)
51                         // check is required in this first loop unless we have a nonempty display value (either
52                         // inline or about-to-be-restored)
53                         if ( display === "none" ) {
54                                 values[ index ] = dataPriv.get( elem, "display" ) || null;
55                                 if ( !values[ index ] ) {
56                                         elem.style.display = "";
57                                 }
58                         }
59                         if ( elem.style.display === "" && isHiddenWithinTree( elem ) ) {
60                                 values[ index ] = getDefaultDisplay( elem );
61                         }
62                 } else {
63                         if ( display !== "none" ) {
64                                 values[ index ] = "none";
65
66                                 // Remember what we're overwriting
67                                 dataPriv.set( elem, "display", display );
68                         }
69                 }
70         }
71
72         // Set the display of the elements in a second loop to avoid constant reflow
73         for ( index = 0; index < length; index++ ) {
74                 if ( values[ index ] != null ) {
75                         elements[ index ].style.display = values[ index ];
76                 }
77         }
78
79         return elements;
80 }
81
82 jQuery.fn.extend( {
83         show: function() {
84                 return showHide( this, true );
85         },
86         hide: function() {
87                 return showHide( this );
88         },
89         toggle: function( state ) {
90                 if ( typeof state === "boolean" ) {
91                         return state ? this.show() : this.hide();
92                 }
93
94                 return this.each( function() {
95                         if ( isHiddenWithinTree( this ) ) {
96                                 jQuery( this ).show();
97                         } else {
98                                 jQuery( this ).hide();
99                         }
100                 } );
101         }
102 } );
103
104 return showHide;
105 } );