]> source.dussan.org Git - jquery.git/commitdiff
CSS: jQuery#hide should always save display value
authorOleg Gaidarenko <markelog@gmail.com>
Wed, 5 Feb 2014 05:54:15 +0000 (09:54 +0400)
committerDave Methvin <dave.methvin@gmail.com>
Fri, 21 Mar 2014 02:47:35 +0000 (22:47 -0400)
Fixes #14750
Closes gh-1509
(cherry picked from commit 5a8f76933288396b915800a18240aa17d3414201)

Conflicts:
src/css.js

src/css.js
test/unit/css.js

index 1e454caf1d06cbbc44ced2123302a8e3e47a0c80..31f551eb1e47c3bd59a4ad3b019fe706ff7bc5ef 100644 (file)
@@ -92,13 +92,10 @@ function showHide( elements, show ) {
                                values[ index ] = jQuery._data( elem, "olddisplay", defaultDisplay(elem.nodeName) );
                        }
                } else {
+                       hidden = isHidden( elem );
 
-                       if ( !values[ index ] ) {
-                               hidden = isHidden( elem );
-
-                               if ( display && display !== "none" || !hidden ) {
-                                       jQuery._data( elem, "olddisplay", hidden ? display : jQuery.css( elem, "display" ) );
-                               }
+                       if ( display && display !== "none" || !hidden ) {
+                               jQuery._data( elem, "olddisplay", hidden ? display : jQuery.css( elem, "display" ) );
                        }
                }
        }
index 018bfc942e6abfb71c8b6353c80312c75b1ec0d5..c949ae062eae98130957457307973f8c40fe1672 100644 (file)
@@ -1106,6 +1106,16 @@ asyncTest( "Make sure initialized display value for disconnected nodes is correc
        jQuery._removeData( jQuery("#display")[ 0 ] );
 });
 
+test( "show() after hide() should always set display to initial value (#14750)", 1, function() {
+       var div = jQuery( "<div />" ),
+               fixture = jQuery( "#qunit-fixture" );
+
+       fixture.append( div );
+
+       div.css( "display", "inline" ).hide().show().css( "display", "list-item" ).hide().show();
+       equal( div.css( "display" ), "list-item", "should get last set display value" );
+});
+
 // Support: IE < 11, Safari < 7
 // We have to jump through the hoops here in order to test work with "order" CSS property,
 // that some browsers do not support. This test is not, strictly speaking, correct,