mirror of
https://github.com/jquery/jquery.git
synced 2024-10-05 11:34:18 +00:00
Fix #10006: Allow .show() to work on detached elements.
This commit is contained in:
parent
d07116a952
commit
cc5e8e3866
3
src/effects.js
vendored
3
src/effects.js
vendored
@ -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) );
|
||||
}
|
||||
}
|
||||
|
54
test/unit/effects.js
vendored
54
test/unit/effects.js
vendored
@ -188,6 +188,60 @@ test("show() resolves correct default display #8099", function() {
|
||||
|
||||
});
|
||||
|
||||
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." );
|
||||
});
|
||||
|
||||
|
||||
test("animate(Hash, Object, Function)", function() {
|
||||
expect(1);
|
||||
|
@ -113,6 +113,7 @@ test("callbacks keep their place in the queue", function() {
|
||||
|
||||
div.promise("fx").done(function() {
|
||||
equal(counter, 4, "Deferreds resolved");
|
||||
jQuery.removeData( div[0], "olddisplay", true );
|
||||
start();
|
||||
});
|
||||
});
|
||||
|
Loading…
Reference in New Issue
Block a user