Added in support for .offset(Function).

This commit is contained in:
jeresig 2010-01-07 14:07:21 -05:00
parent ebaf374f2a
commit 4fa00369f0
2 changed files with 38 additions and 26 deletions

View file

@ -7,8 +7,8 @@ if ( "getBoundingClientRect" in document.documentElement ) {
}
if ( options ) {
return this.each(function() {
jQuery.offset.setOffset( this, options );
return this.each(function( i ) {
jQuery.offset.setOffset( this, i, options );
});
}
@ -33,8 +33,8 @@ if ( "getBoundingClientRect" in document.documentElement ) {
}
if ( options ) {
return this.each(function() {
jQuery.offset.setOffset( this, options );
return this.each(function( i ) {
jQuery.offset.setOffset( this, i, options );
});
}
@ -137,7 +137,7 @@ jQuery.offset = {
return { top: top, left: left };
},
setOffset: function( elem, options ) {
setOffset: function( elem, i, options ) {
// set position first, in-case top/left are set even on static elem
if ( /static/.test( jQuery.curCSS( elem, "position" ) ) ) {
elem.style.position = "relative";
@ -145,11 +145,16 @@ jQuery.offset = {
var curElem = jQuery( elem ),
curOffset = curElem.offset(),
curTop = parseInt( jQuery.curCSS( elem, "top", true ), 10 ) || 0,
curLeft = parseInt( jQuery.curCSS( elem, "left", true ), 10) || 0,
props = {
top: (options.top - curOffset.top) + curTop,
left: (options.left - curOffset.left) + curLeft
};
curLeft = parseInt( jQuery.curCSS( elem, "left", true ), 10 ) || 0;
if ( jQuery.isFunction( options ) ) {
options = options.call( elem, i, curOffset );
}
var props = {
top: (options.top - curOffset.top) + curTop,
left: (options.left - curOffset.left) + curLeft
};
if ( "using" in options ) {
options.using.call( elem, props );