From 543db64412b37b5fa1f3d7fea19f62d6db993fb0 Mon Sep 17 00:00:00 2001 From: Colin Snover Date: Fri, 8 Oct 2010 20:29:41 -0500 Subject: [PATCH] Fixed code convention issues. Reduced size of overflow reset code. Fixed broken show() test cases. --- src/effects.js | 50 ++++++++++++++++++++++++++------------------------ src/support.js | 20 ++++++++++---------- test/unit/effects.js | 17 ++++++++--------- 3 files changed, 44 insertions(+), 43 deletions(-) diff --git a/src/effects.js b/src/effects.js index bcbc565..241dbd0 100644 --- a/src/effects.js +++ b/src/effects.js @@ -13,23 +13,6 @@ var elemdisplay = {}, [ "opacity" ] ]; -function defaultDisplay(nodeName) { - if ( !elemdisplay[ nodeName ] ) { - var elem = jQuery("<" + nodeName + ">").appendTo("body"), - display = elem.css("display"); - - elem.remove(); - - if ( display === "none" || display === "" ) { - display = "block"; - } - - elemdisplay[ nodeName ] = display; - } - - return elemdisplay[ nodeName ]; -} - jQuery.fn.extend({ show: function( speed, easing, callback ) { if ( speed || speed === 0 ) { @@ -45,7 +28,7 @@ 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 ( jQuery.css( this[i], "display" ) === "none" && this[i].style.display === "" ) { + if ( this[i].style.display === "" && jQuery.css( this[i], "display" ) === "none" ) { jQuery.data(this[i], "olddisplay", defaultDisplay(this[i].nodeName)); } } @@ -149,9 +132,10 @@ jQuery.fn.extend({ // animations on inline elements that are having width/height // animated if ( jQuery.css( this, "display" ) === "inline" && - jQuery.css( this, "float" ) === "none" ) { + jQuery.css( this, "float" ) === "none" ) { if ( !jQuery.support.inlineBlockNeedsLayout ) { this.style.display = "inline-block"; + } else { var display = defaultDisplay(this.nodeName); @@ -159,8 +143,8 @@ jQuery.fn.extend({ // block-level elements need to be inline with layout if ( display === "inline" ) { this.style.display = "inline-block"; - } - else { + + } else { this.style.display = "inline"; this.style.zoom = 1; } @@ -409,9 +393,10 @@ jQuery.fx.prototype = { if ( done ) { // Reset the overflow if ( this.options.overflow != null && !jQuery.support.shrinkWrapBlocks ) { - this.elem.style.overflow = this.options.overflow[0]; - this.elem.style.overflowX = this.options.overflow[1]; - this.elem.style.overflowY = this.options.overflow[2]; + var elem = this.elem, options = this.options; + jQuery.each( [ "", "X", "Y" ], function (index, value) { + elem.style[ "overflow" + value ] = options.overflow[index]; + } ); } // Hide the element if the "hide" operation was done @@ -502,4 +487,21 @@ if ( jQuery.expr && jQuery.expr.filters ) { }; } +function defaultDisplay( nodeName ) { + if ( !elemdisplay[ nodeName ] ) { + var elem = jQuery("<" + nodeName + ">").appendTo("body"), + display = elem.css("display"); + + elem.remove(); + + if ( display === "none" || display === "" ) { + display = "block"; + } + + elemdisplay[ nodeName ] = display; + } + + return elemdisplay[ nodeName ]; +} + })( jQuery ); diff --git a/src/support.js b/src/support.js index 85deb1b..c2ffa45 100644 --- a/src/support.js +++ b/src/support.js @@ -121,24 +121,24 @@ document.body.appendChild( div ); jQuery.boxModel = jQuery.support.boxModel = div.offsetWidth === 2; - if ( 'zoom' in div.style ) { + if ( "zoom" in div.style ) { // Check if natively block-level elements act like inline-block // elements when setting their display to 'inline' and giving // them layout // (IE < 8 does this) - div.style.display = 'inline'; + div.style.display = "inline"; div.style.zoom = 1; jQuery.support.inlineBlockNeedsLayout = div.offsetWidth === 2; // Check if elements with layout shrink-wrap their children // (IE 6 does this) - div.style.display = ''; - div.innerHTML = '
'; + div.style.display = ""; + div.innerHTML = "
"; jQuery.support.shrinkWrapBlocks = div.offsetWidth !== 2; } - div.innerHTML = '
t
'; - var tds = div.getElementsByTagName('td'); + div.innerHTML = "
t
"; + var tds = div.getElementsByTagName("td"); // Check if table cells still have offsetWidth/Height when they are set // to display:none and there are still other visible table cells in a @@ -149,15 +149,15 @@ // (only IE 8 fails this test) jQuery.support.reliableHiddenOffsets = tds[0].offsetHeight === 0; - tds[0].style.display = ''; - tds[1].style.display = 'none'; + tds[0].style.display = ""; + tds[1].style.display = "none"; // Check if empty table cells still have offsetWidth/Height // (IE < 8 fail this test) jQuery.support.reliableHiddenOffsets = jQuery.support.reliableHiddenOffsets && tds[0].offsetHeight === 0; - div.innerHTML = ''; + div.innerHTML = ""; - document.body.removeChild( div ).style.display = 'none'; + document.body.removeChild( div ).style.display = "none"; div = tds = null; }); diff --git a/test/unit/effects.js b/test/unit/effects.js index dd95d1b..3c4015a 100644 --- a/test/unit/effects.js +++ b/test/unit/effects.js @@ -38,9 +38,10 @@ test("show()", function() { }); // #show-tests * is set display: none in CSS - jQuery("#main").append('

'); - - var old = jQuery("#show-tests table").show().css("display") !== "table"; + jQuery("#main").append('

'); + + var old = jQuery("#test-table").show().css("display") !== "table"; + jQuery("#test-table").remove(); var test = { "div" : "block", @@ -71,10 +72,11 @@ test("show(Number) - other displays", function() { stop(); // #show-tests * is set display: none in CSS - jQuery("#main").append('

'); + jQuery("#main").append('

'); - var old = jQuery("#show-tests table").show().css("display") !== "table", + var old = jQuery("#test-table").show().css("display") !== "table", num = 0; + jQuery("#test-table").remove(); var test = { "div" : "block", @@ -94,10 +96,7 @@ test("show(Number) - other displays", function() { }; jQuery.each(test, function(selector, expected) { - // IE sometimes has issues with chained functions referencing - // assignments from outside the closure - var elem = jQuery(selector, "#show-tests"); - elem.show(1, function() { + var elem = jQuery(selector, "#show-tests").show(1, function() { equals( elem.css("display"), expected, "Show using correct display type for " + selector ); if ( ++num === 15 ) { start(); -- 1.7.10.4