Todd, you''re correct; the first definition isn''t supposed to
be there :).
-Jerod
On 2/7/06, Todd Ross
<rails-spinoffs-25kFIyuv2iRiLUuM0BA3LQ@public.gmane.org>
wrote:>
> Does the duplicate clone method of Position serve a subtle purpose
> that I don''t understand? I feel kind of foolish even asking, but
...
> I just don''t get it. I''ve been looking at this for a
couple days now
> and as far as I can tell, the first definition is useless as it gets
> overlaid by the second one. I don''t see any closure trickery
going on
> here, either. I''m surprised to find something like this in what
is
> otherwise beautiful code.
>
> clone: function(source, target) {
> source = $(source);
> target = $(target);
> target.style.position = ''absolute'';
> var offsets = this.cumulativeOffset(source);
> target.style.top = offsets[1] + ''px'';
> target.style.left = offsets[0] + ''px'';
> target.style.width = source.offsetWidth + ''px'';
> target.style.height = source.offsetHeight + ''px'';
> },
>
> clone: function(source, target) {
> var options = Object.extend({
> setLeft: true,
> setTop: true,
> setWidth: true,
> setHeight: true,
> offsetTop: 0,
> offsetLeft: 0
> }, arguments[2] || {})
>
> // find page position of source
> source = $(source);
> var p = Position.page(source);
>
> // find coordinate system to use
> target = $(target);
> var delta = [0, 0];
> var parent = null;
> // delta [0,0] will do fine with position: fixed elements,
> // position:absolute needs offsetParent deltas
> if (Element.getStyle(target,''position'') ==
''absolute'') {
> parent = Position.offsetParent(target);
> delta = Position.page(parent);
> }
>
> // correct by body offsets (fixes Safari)
> if (parent == document.body) {
> delta[0] -= document.body.offsetLeft;
> delta[1] -= document.body.offsetTop;
> }
>
> // set position
> if(options.setLeft) target.style.left = (p[0] - delta[0] +
> options.offsetLeft) + ''px'';
> if(options.setTop) target.style.top = (p[1] - delta[1] +
> options.offsetTop) + ''px'';
> if(options.setWidth) target.style.width = source.offsetWidth +
''px'';
> if(options.setHeight) target.style.height = source.offsetHeight +
> ''px'';
> },
> _______________________________________________
> Rails-spinoffs mailing list
> Rails-spinoffs-1W37MKcQCpIf0INCOvqR/iCwEArCW2h5@public.gmane.org
> http://lists.rubyonrails.org/mailman/listinfo/rails-spinoffs
>
_______________________________________________
Rails-spinoffs mailing list
Rails-spinoffs-1W37MKcQCpIf0INCOvqR/iCwEArCW2h5@public.gmane.org
http://lists.rubyonrails.org/mailman/listinfo/rails-spinoffs