diff options
author | Oleg <markelog@gmail.com> | 2013-02-01 16:57:50 +0400 |
---|---|---|
committer | Dave Methvin <dave.methvin@gmail.com> | 2013-02-04 15:13:01 -0500 |
commit | 8226666b1344b27f22f3f0699586054a20718ad3 (patch) | |
tree | be90a8c502eb85f1a60d647e08b900a0844abfb6 /src/css.js | |
parent | 219a1935eea509bf147a05ef9d47502d8230991d (diff) | |
download | jquery-8226666b1344b27f22f3f0699586054a20718ad3.tar.gz jquery-8226666b1344b27f22f3f0699586054a20718ad3.zip |
Fix #13310. Get the right display value for disconnected nodes. Close gh-1155.
Diffstat (limited to 'src/css.js')
-rw-r--r-- | src/css.js | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/src/css.js b/src/css.js index 72a9962d3..1d1531452 100644 --- a/src/css.js +++ b/src/css.js @@ -51,7 +51,7 @@ function isHidden( elem, el ) { } function showHide( elements, show ) { - var elem, + var display, elem, hidden, values = [], index = 0, length = elements.length; @@ -61,11 +61,13 @@ function showHide( elements, show ) { if ( !elem.style ) { continue; } + values[ index ] = jQuery._data( elem, "olddisplay" ); + display = elem.style.display; if ( show ) { // Reset the inline display of this element to learn if it is // being hidden by cascaded rules or not - if ( !values[ index ] && elem.style.display === "none" ) { + if ( !values[ index ] && display === "none" ) { elem.style.display = ""; } @@ -75,8 +77,15 @@ function showHide( elements, show ) { if ( elem.style.display === "" && isHidden( elem ) ) { values[ index ] = jQuery._data( elem, "olddisplay", css_defaultDisplay(elem.nodeName) ); } - } else if ( !values[ index ] && !isHidden( elem ) ) { - jQuery._data( elem, "olddisplay", jQuery.css( elem, "display" ) ); + } else { + + if ( !values[ index ] ) { + hidden = isHidden( elem ); + + if ( display && display !== "none" || !hidden ) { + jQuery._data( elem, "olddisplay", hidden ? display : jQuery.css( elem, "display" ) ); + } + } } } |