X-Git-Url: http://git.asbjorn.it/?a=blobdiff_plain;f=src%2Feffects.js;h=58a15139cfc7dbb9ef93e1e68c759c396217d941;hb=6b08d88d04f4a41849753999e6e18126895086d0;hp=fd832ce4a886c93a75856e78f722b1c912bf3536;hpb=659773348f1fca0fb609f92271013f2a087f3247;p=jquery.git diff --git a/src/effects.js b/src/effects.js index fd832ce..58a1513 100644 --- a/src/effects.js +++ b/src/effects.js @@ -505,17 +505,42 @@ if ( jQuery.expr && jQuery.expr.filters ) { } function defaultDisplay( nodeName ) { + var stylesheets = document.styleSheets, + disabled = [], + elem, display, style, idx; + if ( !elemdisplay[ nodeName ] ) { - var elem = jQuery("<" + nodeName + ">").appendTo("body"), - display = elem.css("display"); + // #8099 - If the end-dev has globally changed a default + // display, we can temporarily disable their styles to check + // for the correct default value + for ( idx = 0; idx < stylesheets.length; ++idx ) { + style = stylesheets[ idx ]; + disabled[ idx ] = style.disabled; + style.disabled = true; + } + + // To accurately check an element's default display value, + // create a temp element and check it's default display, this + // will ensure that the value returned is not a user-tampered + // value. + elem = jQuery("<" + nodeName + ">").appendTo("body"); + display = elem.css("display"); + + // Remove temp element elem.remove(); if ( display === "none" || display === "" ) { display = "block"; } + // Store the correct default display elemdisplay[ nodeName ] = display; + + // Restore stylesheets + for ( idx = 0; idx < stylesheets.length; ++idx ) { + stylesheets[ idx ].disabled = disabled[ idx ]; + } } return elemdisplay[ nodeName ];