r867 - branches/experimental/ui
Author: paul.bakaus
Date: Wed Nov 5 06:19:50 2008
New Revision: 867
Modified:
branches/experimental/ui/ui.core.position.js
Log:
core (experimental): cleanup of variables in positionTo
Modified: branches/experimental/ui/ui.core.position.js
==============================================================================
--- branches/experimental/ui/ui.core.position.js (original)
+++ branches/experimental/ui/ui.core.position.js Wed Nov 5 06:19:50 2008
@@ -1,23 +1,32 @@
$.fn.positionTo = function(e, o) {
-
- var leftOffset = 0, topOffset = 0;
- var height = this[0].offsetHeight, width = this[0].offsetWidth;
- var parentOffset = this.offsetParent().offset();
- parentOffset = {
- top: this.offsetParent()[0] == document.body ? 0 : parentOffset.top,
- left: this.offsetParent()[0] == document.body ? 0 : parentOffset.left
- };
-
+
var options = $.extend({
relativeTo: 'mouse',
direction: 'default',
forceDirection: false
}, o);
+ var leftOffset = 0,
+ topOffset = 0,
+ height = this[0].offsetHeight,
+ width = this[0].offsetWidth,
+ parentOffset= this.offsetParent().offset()
+ ;
+
+ //Ugly fix for the issues of offset related to the body element
+ parentOffset = {
+ top: this.offsetParent()[0] == document.body ? 0 : parentOffset.top,
+ left: this.offsetParent()[0] == document.body ? 0 : parentOffset.left
+ };
+
+
if($(options.relativeTo).length && $(options.relativeTo)[0].nodeName) {
//If relativeTo is an element
- var element = $(options.relativeTo),offset = element.offset();
- var relHeight = element[0].offsetHeight, relWidth =
element[0].offsetWidth, height = this[0].offsetHeight, width =
this[0].offsetWidth;
+ var element = $(options.relativeTo),
+ offset = element.offset(),
+ relHeight = element[0].offsetHeight,
+ relWidth = element[0].offsetWidth
+ ;
if((/(left|right)/).test(options.direction)) {
leftOffset = ( options.direction == 'left' ? (offset.left > width ||
options.forceDirection) : ($(window).width()-offset.left-relWidth < width
&& !options.forceDirection) ) ? -(width) : relWidth;