I broke out the ${...} functionality into a separate plugin so that we can develop it further. I left a hook in jquery.js so that this can be done, plus I left in the function() functionality.

This commit is contained in:
John Resig
2007-01-08 01:12:21 +00:00
parent 12e6335339
commit b603ca03c4

29
src/jquery/jquery.js vendored
View File

@@ -439,17 +439,15 @@ jQuery.fn = jQuery.prototype = {
for ( var prop in key )
jQuery.attr(
type ? this.style : this,
prop, jQuery.parseSetter(key[prop])
prop, jQuery.prop(this, prop, key[prop], type)
);
// See if we're setting a single key/value style
else {
// convert ${this.property} to function returnung that property
else
jQuery.attr(
type ? this.style : this,
key, jQuery.parseSetter(value)
key, jQuery.prop(this, key, value, type)
);
}
}) :
// Look for the case where we're accessing a style value
@@ -1233,6 +1231,12 @@ jQuery.extend({
for ( var i in obj )
fn.apply( obj[i], args || [i, obj[i]] );
else
for ( var i = 0, ol = obj.length; i < ol; i++ )
if ( fn.apply( obj[i], args || [i, obj[i]] ) === false ) break;
return obj;
},
prop: function(elem, key, value){
// Handle executable functions
return value.constructor == Function &&
value.call( elem, val ) || value;
@@ -1399,16 +1403,6 @@ jQuery.extend({
else
r.push( arg.nodeType ? arg : document.createTextNode(arg.toString()) );
}
return r;
},
parseSetter: function(value) {
if( typeof value == "string" && value.charAt(0) == "$" ) {
var m = value.match(/{(.*)}$/);
if ( m && m[1] ) {
value = new Function( "return " + m[1] );
}
return r;
},
@@ -1424,11 +1418,6 @@ jQuery.extend({
value: "value",
disabled: "disabled",
checked: "checked",
readonly: "readOnly",
selected: "selected"
};
// get value if a function is provided
readonly: "readOnly",
selected: "selected"
};