Приветствую!
Не пойму в чем дело, есть:
function GetPosition($Object){
var $x = $y = 0;
while($Object){
Debug($Object.tagName);
$x += $Object.offsetLeft;
if(typeof $Object.scrollLeft != 'undefined')
$x -= $Object.scrollLeft;
$y += $Object.offsetTop;
if(typeof $Object.scrollTop != 'undefined')
$y -= $Object.scrollTop;
$Object = $Object.offsetParent;
}
return {clientX:$x,clientY:$y};
}
Есть обвязка по событию:
onclick="
with(document.getElementById('id').style) {
if(display != 'none')
{
display = 'none';
} else {
var Position = GetPosition(this);
left = Position.clientX;
top = Position.clientY + 10;
display='block';
}
}"
Не могу понять, почему в style не обрабатывается left/top.
Если для проверки обрезать GetPosition до:
function GetPosition($Object){
return {clientX:10px,clientY:10px};
}
и убрать + 10 из:
Код:
|
top = Position.clientY + 10; |
То событие GetPosition отрабатывает.
Складывается впечатление что гдето обрезается единицы исчисления, в моем случае это px