mirror of
https://github.com/jquery/jquery.git
synced 2024-11-23 02:54:22 +00:00
Added test for css(String, Function) and css(Object) where values are Functions; fixed css(Object)
This commit is contained in:
parent
d857315967
commit
e8eff25f3b
11
src/css.js
11
src/css.js
@ -22,6 +22,13 @@ jQuery.fn.css = function( name, value ) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var isFunction = {};
|
||||||
|
|
||||||
|
// For each value, determine whether it's a Function so we don't
|
||||||
|
// need to determine it again for each element
|
||||||
|
for ( var prop in options )
|
||||||
|
isFunction[prop] = jQuery.isFunction( options[prop] );
|
||||||
|
|
||||||
// For each element...
|
// For each element...
|
||||||
for ( var i = 0, l = this.length; i < l; i++ ) {
|
for ( var i = 0, l = this.length; i < l; i++ ) {
|
||||||
var elem = this[i];
|
var elem = this[i];
|
||||||
@ -30,9 +37,7 @@ jQuery.fn.css = function( name, value ) {
|
|||||||
for ( var prop in options ) {
|
for ( var prop in options ) {
|
||||||
value = options[prop];
|
value = options[prop];
|
||||||
|
|
||||||
if ( isFunction ) {
|
if ( isFunction[prop] ) value = value.call( elem, i );
|
||||||
value = value.call( elem, i );
|
|
||||||
}
|
|
||||||
|
|
||||||
if ( typeof value === "number" && !exclude.test(prop) ) {
|
if ( typeof value === "number" && !exclude.test(prop) ) {
|
||||||
value = value + "px";
|
value = value + "px";
|
||||||
|
@ -81,6 +81,68 @@ test("css(String, Object)", function() {
|
|||||||
equals( jQuery("#t2037 .hidden").css("display"), "none", "Make sure browser thinks it is hidden" );
|
equals( jQuery("#t2037 .hidden").css("display"), "none", "Make sure browser thinks it is hidden" );
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test("css(String, Function)", function() {
|
||||||
|
try {
|
||||||
|
expect(3);
|
||||||
|
|
||||||
|
var colors = ["red", "green", "blue"];
|
||||||
|
|
||||||
|
jQuery("<div id='cssFunctionTest'><div class='cssFunction'></div>" +
|
||||||
|
"<div class='cssFunction'></div>" +
|
||||||
|
"<div class='cssFunction'></div></div>")
|
||||||
|
.appendTo("body");
|
||||||
|
|
||||||
|
var index = 0;
|
||||||
|
|
||||||
|
jQuery("#cssFunctionTest div").css("color", function() {
|
||||||
|
var color = colors[index];
|
||||||
|
index++;
|
||||||
|
return color;
|
||||||
|
});
|
||||||
|
|
||||||
|
index = 0;
|
||||||
|
|
||||||
|
jQuery("#cssFunctionTest div").each(function() {
|
||||||
|
equals( jQuery(this).css("color"), colors[index], "Div #" + index + " should be " + colors[index] );
|
||||||
|
index++;
|
||||||
|
});
|
||||||
|
|
||||||
|
} finally {
|
||||||
|
jQuery("#cssFunctionTest").remove();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
test("css(Object) where values are Functions", function() {
|
||||||
|
try {
|
||||||
|
expect(3);
|
||||||
|
|
||||||
|
var colors = ["red", "green", "blue"];
|
||||||
|
|
||||||
|
jQuery("<div id='cssFunctionTest'><div class='cssFunction'></div>" +
|
||||||
|
"<div class='cssFunction'></div>" +
|
||||||
|
"<div class='cssFunction'></div></div>")
|
||||||
|
.appendTo("body");
|
||||||
|
|
||||||
|
var index = 0;
|
||||||
|
|
||||||
|
jQuery("#cssFunctionTest div").css({color: function() {
|
||||||
|
var color = colors[index];
|
||||||
|
index++;
|
||||||
|
return color;
|
||||||
|
}});
|
||||||
|
|
||||||
|
index = 0;
|
||||||
|
|
||||||
|
jQuery("#cssFunctionTest div").each(function() {
|
||||||
|
equals( jQuery(this).css("color"), colors[index], "Div #" + index + " should be " + colors[index] );
|
||||||
|
index++;
|
||||||
|
});
|
||||||
|
|
||||||
|
} finally {
|
||||||
|
jQuery("#cssFunctionTest").remove();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
test("jQuery.css(elem, 'height') doesn't clear radio buttons (bug #1095)", function () {
|
test("jQuery.css(elem, 'height') doesn't clear radio buttons (bug #1095)", function () {
|
||||||
expect(4);
|
expect(4);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user