Permalink
Browse files

Landing pull request 581. Updates original patch by Orkel. Fixes #10006.

  • Loading branch information...
1 parent 65d3dc6 commit 299bc655c90cc89652417675f976ae1bfefc4d8b @rwaldron rwaldron committed with timmywil Nov 21, 2011
Showing with 56 additions and 2 deletions.
  1. +2 −1 src/effects.js
  2. +54 −1 test/unit/effects.js
View
@@ -38,7 +38,8 @@ jQuery.fn.extend({
// Set elements which have been overridden with display: none
// in a stylesheet to whatever the default browser style is
// for such an element
- if ( display === "" && jQuery.css(elem, "display") === "none" ) {
+ if ( (display === "" && jQuery.css(elem, "display") === "none") ||
+ !jQuery.contains( elem.ownerDocument.documentElement, elem ) ) {
jQuery._data( elem, "olddisplay", defaultDisplay(elem.nodeName) );
}
}
View
@@ -167,7 +167,7 @@ test("Persist correct display value", function() {
});
});
-test("show() resolves correct default display #8099", function() {
+test("show() resolves correct default display (#8099)", function() {
expect(7);
var tt8099 = jQuery("<tt/>").appendTo("body"),
dfn8099 = jQuery("<dfn/>", { html: "foo"}).appendTo("body");
@@ -185,7 +185,60 @@ test("show() resolves correct default display #8099", function() {
tt8099.remove();
dfn8099.remove();
+});
+
+test( "show() resolves correct default display, detached nodes (#10006)", function(){
+ // Tests originally contributed by Orkel in
+ // https://github.com/jquery/jquery/pull/458
+ expect( 11 );
+
+ var div, span;
+
+ div = jQuery("<div class='hidden'>");
+ div.show().appendTo("#qunit-fixture");
+ equal( div.css("display"), "block", "Make sure a detached, pre-hidden( through stylesheets ) div is visible." );
+
+ div = jQuery("<div style='display: none'>");
+ div.show().appendTo("#qunit-fixture");
+ equal( div.css("display"), "block", "Make sure a detached, pre-hidden( through inline style ) div is visible." );
+
+ span = jQuery("<span class='hidden'/>");
+ span.show().appendTo("#qunit-fixture");
+ equal( span.css("display"), "inline", "Make sure a detached, pre-hidden( through stylesheets ) span has default display." );
+
+ span = jQuery("<span style='display: inline'/>");
+ span.show().appendTo("#qunit-fixture");
+ equal( span.css("display"), "inline", "Make sure a detached, pre-hidden( through inline style ) span has default display." );
+
+ div = jQuery("<div><div class='hidden'></div></div>").children("div");
+ div.show().appendTo("#qunit-fixture");
+ equal( div.css("display"), "block", "Make sure a detached, pre-hidden( through stylesheets ) div inside another visible div is visible." );
+
+ div = jQuery("<div><div style='display: none'></div></div>").children("div");
+ div.show().appendTo("#qunit-fixture");
+ equal( div.css("display"), "block", "Make sure a detached, pre-hidden( through inline style ) div inside another visible div is visible." );
+
+ div = jQuery("div.hidden");
+ div.detach().show();
+ equal( div.css("display"), "block", "Make sure a detached( through detach() ), pre-hidden div is visible." );
+ div.remove();
+
+ span = jQuery("<span>");
+ span.appendTo("#qunit-fixture").detach().show().appendTo("#qunit-fixture" );
+ equal( span.css("display"), "inline", "Make sure a detached( through detach() ), pre-hidden span has default display." );
+ span.remove();
+
+ div = jQuery("<div>");
+ div.show().appendTo("#qunit-fixture");
+ ok( !!div.get( 0 ).style.display, "Make sure not hidden div has a inline style." );
+
+ div = jQuery( document.createElement("div") );
+ div.show().appendTo("#qunit-fixture");
+ equal( div.css("display"), "block", "Make sure a pre-created element has default display." );
+ div = jQuery("<div style='display: inline'/>");
+ div.show().appendTo("#qunit-fixture");
+ equal( div.css("display"), "inline", "Make sure that element has same display when it was created." );
});

0 comments on commit 299bc65

Please sign in to comment.