From cc5e8e3866e5dac7eacda5927679573c8da79492 Mon Sep 17 00:00:00 2001 From: Oleg Date: Thu, 12 Jan 2012 19:40:41 -0500 Subject: [PATCH] Fix #10006: Allow .show() to work on detached elements. --- src/effects.js | 3 ++- test/unit/effects.js | 54 ++++++++++++++++++++++++++++++++++++++++++++ test/unit/queue.js | 1 + 3 files changed, 57 insertions(+), 1 deletion(-) diff --git a/src/effects.js b/src/effects.js index 926b40b54..6716e616a 100644 --- a/src/effects.js +++ b/src/effects.js @@ -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) ); } } diff --git a/test/unit/effects.js b/test/unit/effects.js index 1728cf8f9..49fa33d42 100644 --- a/test/unit/effects.js +++ b/test/unit/effects.js @@ -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("