Make sure null/NaN values aren't set in .css(). Fixes #7116.
This commit is contained in:
parent
2ca3659895
commit
2ae872c594
|
@ -70,7 +70,7 @@ jQuery.extend({
|
||||||
style: function( elem, name, value, extra ) {
|
style: function( elem, name, value, extra ) {
|
||||||
// Don't set styles on text and comment nodes
|
// Don't set styles on text and comment nodes
|
||||||
if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {
|
if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {
|
||||||
return undefined;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Make sure that we're working with the right name
|
// Make sure that we're working with the right name
|
||||||
|
@ -81,6 +81,11 @@ jQuery.extend({
|
||||||
|
|
||||||
// Check if we're setting a value
|
// Check if we're setting a value
|
||||||
if ( value !== undefined ) {
|
if ( value !== undefined ) {
|
||||||
|
// Make sure that NaN and null values aren't set. See: #7116
|
||||||
|
if ( typeof value === "number" && isNaN( value ) || value == null ) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
// If a number was passed in, add 'px' to the (except for certain CSS properties)
|
// If a number was passed in, add 'px' to the (except for certain CSS properties)
|
||||||
if ( typeof value === "number" && !jQuery.cssNumber[ origName ] ) {
|
if ( typeof value === "number" && !jQuery.cssNumber[ origName ] ) {
|
||||||
value += "px";
|
value += "px";
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
module("css");
|
module("css");
|
||||||
|
|
||||||
test("css(String|Hash)", function() {
|
test("css(String|Hash)", function() {
|
||||||
expect(29);
|
expect(33);
|
||||||
|
|
||||||
equals( jQuery('#main').css("display"), 'none', 'Check for css property "display"');
|
equals( jQuery('#main').css("display"), 'none', 'Check for css property "display"');
|
||||||
|
|
||||||
|
@ -61,6 +61,26 @@ test("css(String|Hash)", function() {
|
||||||
equals( prctval, checkval, "Verify fontSize % set." );
|
equals( prctval, checkval, "Verify fontSize % set." );
|
||||||
|
|
||||||
equals( typeof child.css("width"), "string", "Make sure that a string width is returned from css('width')." );
|
equals( typeof child.css("width"), "string", "Make sure that a string width is returned from css('width')." );
|
||||||
|
|
||||||
|
var old = child[0].style.height;
|
||||||
|
|
||||||
|
// Test NaN
|
||||||
|
child.css("height", parseFloat("zoo"));
|
||||||
|
equals( child[0].style.height, old, "Make sure height isn't changed on NaN." );
|
||||||
|
|
||||||
|
// Test null
|
||||||
|
child.css("height", null);
|
||||||
|
equals( child[0].style.height, old, "Make sure height isn't changed on null." );
|
||||||
|
|
||||||
|
old = child[0].style.fontSize;
|
||||||
|
|
||||||
|
// Test NaN
|
||||||
|
child.css("font-size", parseFloat("zoo"));
|
||||||
|
equals( child[0].style.fontSize, old, "Make sure font-size isn't changed on NaN." );
|
||||||
|
|
||||||
|
// Test null
|
||||||
|
child.css("font-size", null);
|
||||||
|
equals( child[0].style.fontSize, old, "Make sure font-size isn't changed on null." );
|
||||||
});
|
});
|
||||||
|
|
||||||
test("css(String, Object)", function() {
|
test("css(String, Object)", function() {
|
||||||
|
|
Loading…
Reference in a new issue