Показать сообщение отдельно
  #1 (permalink)  
Старый 16.07.2014, 10:27
Новичок на форуме
Отправить личное сообщение для valmonv Посмотреть профиль Найти все сообщения от valmonv
 
Регистрация: 16.07.2014
Сообщений: 8

Не работает GetPosition
Приветствую!

Не пойму в чем дело, есть:
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
Ответить с цитированием