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:
parent
12e6335339
commit
b603ca03c4
29
src/jquery/jquery.js
vendored
29
src/jquery/jquery.js
vendored
|
@ -439,17 +439,15 @@ jQuery.fn = jQuery.prototype = {
|
||||||
for ( var prop in key )
|
for ( var prop in key )
|
||||||
jQuery.attr(
|
jQuery.attr(
|
||||||
type ? this.style : this,
|
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
|
// See if we're setting a single key/value style
|
||||||
else {
|
else
|
||||||
// convert ${this.property} to function returnung that property
|
|
||||||
jQuery.attr(
|
jQuery.attr(
|
||||||
type ? this.style : this,
|
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
|
// Look for the case where we're accessing a style value
|
||||||
|
@ -1234,6 +1232,12 @@ jQuery.extend({
|
||||||
return obj;
|
return obj;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
prop: function(elem, key, value){
|
||||||
|
// Handle executable functions
|
||||||
|
return value.constructor == Function &&
|
||||||
|
value.call( elem, val ) || value;
|
||||||
|
},
|
||||||
|
|
||||||
className: {
|
className: {
|
||||||
add: function( elem, c ){
|
add: function( elem, c ){
|
||||||
jQuery.each( c.split(/\s+/), function(i, cur){
|
jQuery.each( c.split(/\s+/), function(i, cur){
|
||||||
|
@ -1399,16 +1403,6 @@ jQuery.extend({
|
||||||
return r;
|
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 value;
|
|
||||||
},
|
|
||||||
|
|
||||||
attr: function(elem, name, value){
|
attr: function(elem, name, value){
|
||||||
var fix = {
|
var fix = {
|
||||||
"for": "htmlFor",
|
"for": "htmlFor",
|
||||||
|
@ -1424,11 +1418,6 @@ jQuery.extend({
|
||||||
selected: "selected"
|
selected: "selected"
|
||||||
};
|
};
|
||||||
|
|
||||||
// get value if a function is provided
|
|
||||||
if ( value && typeof value == "function" ) {
|
|
||||||
value = value.apply( elem );
|
|
||||||
}
|
|
||||||
|
|
||||||
// IE actually uses filters for opacity ... elem is actually elem.style
|
// IE actually uses filters for opacity ... elem is actually elem.style
|
||||||
if ( name == "opacity" && jQuery.browser.msie && value != undefined ) {
|
if ( name == "opacity" && jQuery.browser.msie && value != undefined ) {
|
||||||
// IE has trouble with opacity if it does not have layout
|
// IE has trouble with opacity if it does not have layout
|
||||||
|
|
Loading…
Reference in a new issue