From f5e36bd8f2c2b28231bbed926c6c3dead94db545 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Micha=C5=82=20Go=C5=82=C4=99biowski-Owczarek?= Date: Mon, 30 Apr 2018 18:52:39 +0200 Subject: [PATCH] CSS: Skip the px-appending logic for animations of non-element props Without this change animating properties from jQuery.cssNumber on non-elements throws an error. Ref gh-4055 Closes gh-4061 --- src/css/adjustCSS.js | 3 ++- test/unit/effects.js | 11 +++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/css/adjustCSS.js b/src/css/adjustCSS.js index 626ec7475..8898789a7 100644 --- a/src/css/adjustCSS.js +++ b/src/css/adjustCSS.js @@ -19,7 +19,8 @@ function adjustCSS( elem, prop, valueParts, tween ) { unit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? "" : "px" ), // Starting value computation is required for potential unit mismatches - initialInUnit = ( jQuery.cssNumber[ prop ] || unit !== "px" && +initial ) && + initialInUnit = elem.nodeType && + ( jQuery.cssNumber[ prop ] || unit !== "px" && +initial ) && rcssNum.exec( jQuery.css( elem, prop ) ); if ( initialInUnit && initialInUnit[ 3 ] !== unit ) { diff --git a/test/unit/effects.js b/test/unit/effects.js index 462524ef3..e297273e4 100644 --- a/test/unit/effects.js +++ b/test/unit/effects.js @@ -607,6 +607,17 @@ QUnit.test( "animate non-element", function( assert ) { this.clock.tick( 200 ); } ); +QUnit.test( "animate non-element's zIndex without appending \"px\"", function( assert ) { + assert.expect( 1 ); + + var obj = { zIndex: 0 }; + + jQuery( obj ).animate( { zIndex: 200 }, 200, function() { + assert.equal( obj.zIndex, 200, "The custom property should be modified without appending \"px\"." ); + } ); + this.clock.tick( 200 ); +} ); + QUnit.test( "stop()", function( assert ) { assert.expect( 4 ); -- 2.39.5