aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrandon Aaron <brandon.aaron@gmail.com>2009-04-22 05:23:53 +0000
committerBrandon Aaron <brandon.aaron@gmail.com>2009-04-22 05:23:53 +0000
commit6a049246a123d7da75430f875e9eee1ba3270722 (patch)
tree22af8b76f0a59d6455f0908ec848e792a3565693
parent8be57929750eac38b0eb331cd99def3d88302cc1 (diff)
downloadjquery-6a049246a123d7da75430f875e9eee1ba3270722.tar.gz
jquery-6a049246a123d7da75430f875e9eee1ba3270722.zip
fix for #4216. css now ignores negative numbers for width and height when passed an object of props and vals.
-rw-r--r--src/css.js8
-rw-r--r--test/unit/css.js8
2 files changed, 11 insertions, 5 deletions
diff --git a/src/css.js b/src/css.js
index b8a135005..f77497b4f 100644
--- a/src/css.js
+++ b/src/css.js
@@ -8,10 +8,6 @@ var exclude = /z-?index|font-?weight|opacity|zoom|line-?height/i,
jQuery.fn.css = function( name, value ) {
var options = name, isFunction = jQuery.isFunction( value );
- // ignore negative width and height values
- if ( (name == 'width' || name == 'height') && parseFloat(value) < 0 )
- value = undefined;
-
if ( typeof name === "string" ) {
// Are we setting the style?
if ( value === undefined ) {
@@ -55,6 +51,10 @@ jQuery.extend({
if (!elem || elem.nodeType == 3 || elem.nodeType == 8)
return undefined;
+ // ignore negative width and height values #1599
+ if ( (name == 'width' || name == 'height') && parseFloat(value) < 0 )
+ value = undefined;
+
var style = elem.style || elem, set = value !== undefined;
// IE uses filters for opacity
diff --git a/test/unit/css.js b/test/unit/css.js
index af1983cc1..a70b11534 100644
--- a/test/unit/css.js
+++ b/test/unit/css.js
@@ -1,7 +1,7 @@
module("css");
test("css(String|Hash)", function() {
- expect(19);
+ expect(21);
equals( jQuery('#main').css("display"), 'none', 'Check for css property "display"');
@@ -11,6 +11,12 @@ test("css(String|Hash)", function() {
jQuery('#nothiddendiv').css({display: 'block'});
ok( jQuery('#nothiddendiv').is(':visible'), 'Modified CSS display: Assert element is visible');
+ // handle negative numbers by ignoring #1599, #4216
+ var width = parseFloat(jQuery('#nothiddendiv').css('width')), height = parseFloat(jQuery('#nothiddendiv').css('height'));
+ jQuery('#nothiddendiv').css({ width: -1, height: -1 });
+ equals( parseFloat(jQuery('#nothiddendiv').css('width')), width, 'Test negative width ignored')
+ equals( parseFloat(jQuery('#nothiddendiv').css('height')), height, 'Test negative height ignored')
+
jQuery('#floatTest').css({styleFloat: 'right'});
equals( jQuery('#floatTest').css('styleFloat'), 'right', 'Modified CSS float using "styleFloat": Assert float is right');
jQuery('#floatTest').css({cssFloat: 'left'});