jQuery.css() returns a string value - handle this properly in the animation code.

This commit is contained in:
John Resig 2010-09-17 14:30:30 -04:00
parent d1f3dc9a04
commit 192bab8ed6
2 changed files with 7 additions and 8 deletions

2
src/effects.js vendored
View file

@ -321,7 +321,7 @@ jQuery.fx.prototype = {
return this.elem[ this.prop ]; return this.elem[ this.prop ];
} }
var r = jQuery.css( this.elem, this.prop ); var r = parseFloat( jQuery.css( this.elem, this.prop ), 10 );
return r && r > -10000 ? r : 0; return r && r > -10000 ? r : 0;
}, },

13
test/unit/effects.js vendored
View file

@ -240,11 +240,11 @@ test("stop()", function() {
$foo.animate({ width:'show' }, 1000); $foo.animate({ width:'show' }, 1000);
setTimeout(function(){ setTimeout(function(){
var nw = $foo.width(); var nw = $foo.width();
ok( nw != w, "An animation occurred " + nw + "px " + w + "px"); notEqual( nw, w, "An animation occurred " + nw + "px " + w + "px");
$foo.stop(); $foo.stop();
nw = $foo.width(); nw = $foo.width();
ok( nw != w, "Stop didn't reset the animation " + nw + "px " + w + "px"); notEqual( nw, w, "Stop didn't reset the animation " + nw + "px " + w + "px");
setTimeout(function(){ setTimeout(function(){
equals( nw, $foo.width(), "The animation didn't continue" ); equals( nw, $foo.width(), "The animation didn't continue" );
start(); start();
@ -266,13 +266,12 @@ test("stop() - several in queue", function() {
setTimeout(function(){ setTimeout(function(){
equals( $foo.queue().length, 3, "All 3 still in the queue" ); equals( $foo.queue().length, 3, "All 3 still in the queue" );
var nw = $foo.width(); var nw = $foo.width();
ok( nw != w, "An animation occurred " + nw + "px " + w + "px"); notEqual( nw, w, "An animation occurred " + nw + "px " + w + "px");
$foo.stop(); $foo.stop();
nw = $foo.width(); nw = $foo.width();
ok( nw != w, "Stop didn't reset the animation " + nw + "px " + w + "px"); notEqual( nw, w, "Stop didn't reset the animation " + nw + "px " + w + "px");
// Disabled, being flaky
//equals( $foo.queue().length, 1, "The next animation continued" );
$foo.stop(true); $foo.stop(true);
start(); start();
}, 100); }, 100);
@ -517,7 +516,7 @@ jQuery.each( {
if ( t_h == "show" ) { if ( t_h == "show" ) {
var old_h = jQuery.css(this, "height"); var old_h = jQuery.css(this, "height");
jQuery(this).append("<br/>Some more text<br/>and some more..."); jQuery(this).append("<br/>Some more text<br/>and some more...");
notEqual(jQuery.css(this, "height"), old_h, "Make sure height is auto."); notEqual(jQuery.css(this, "height") + "px", old_h, "Make sure height is auto.");
} }
start(); start();