From 623e8e68b4e396cd9a3cdb4985c9db343924c4ec Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jo=CC=88rn=20Zaefferer?= Date: Wed, 11 Apr 2012 00:19:26 +0200 Subject: [PATCH] Position: Mini refactoring, avoids proxying using callback multiple times if more then one element is positioned --- ui/jquery.ui.position.js | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/ui/jquery.ui.position.js b/ui/jquery.ui.position.js index cde99cdca..025d2c815 100644 --- a/ui/jquery.ui.position.js +++ b/ui/jquery.ui.position.js @@ -170,7 +170,7 @@ $.fn.position = function( options ) { ( rpercent.test( offsets.my[ 1 ] ) ? elem.outerHeight() / 100 : 1 ) ], collisionPosition, - using = options.using; + using; if ( options.my[ 0 ] === "right" ) { position.left -= elemWidth; @@ -221,9 +221,9 @@ $.fn.position = function( options ) { elem.bgiframe(); } - if ( using ) { - // we have to proxy, as jQuery.offset.setOffset throws away props other than left/top - options.using = function( props ) { + if ( options.using ) { + // adds feedback as second argument to using callback, if present + using = function( props ) { var left = targetOffset.left - props.left, right = (targetOffset.left + targetWidth) - (props.left + elemWidth), top = targetOffset.top - props.top, @@ -237,11 +237,11 @@ $.fn.position = function( options ) { } else { feedback.important = "vertical"; } - using.call( this, props, feedback ); + options.using.call( this, props, feedback ); }; } - elem.offset( $.extend( position, { using: options.using } ) ); + elem.offset( $.extend( position, { using: using } ) ); }); }; -- 2.39.5