Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #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
Ответить с цитированием
  #2 (permalink)  
Старый 16.07.2014, 11:55
Профессор
Отправить личное сообщение для skrudjmakdak Посмотреть профиль Найти все сообщения от skrudjmakdak
 
Регистрация: 27.04.2012
Сообщений: 1,410

да у вас тут черт ногу сломит))
более менее привел в рабочий вариант:

<html>
	<head>
		<title>example</title>
	</head>
	<body>
		<div style="position: relative; top: 34px;">
			<input type='button' value='click me' id="mybutton">
		</div>
		<!--<script src="http://code.jquery.com/jquery-1.10.2.js"></script>-->
		<!--<script src="http://code.jquery.com/ui/1.11.0/jquery-ui.js"></script>
		<link rel="stylesheet" href="http://code.jquery.com/ui/1.11.0/themes/smoothness/jquery-ui.css">-->
		<script>
		document.getElementById('mybutton').onclick = function ()
			{
			var $x = $y = 0;
			
			var $Object = this;
			
			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;
				}
				
			console.log($x);
			console.log($y);
  //return {clientX:$x,clientY:$y};

			}
		</script>
	</body>
</html>



и еще.. говорят не рекомендуют вроде как использовать with
http://habrahabr.ru/post/120364/
Ответить с цитированием
  #3 (permalink)  
Старый 16.07.2014, 12:22
Новичок на форуме
Отправить личное сообщение для valmonv Посмотреть профиль Найти все сообщения от valmonv
 
Регистрация: 16.07.2014
Сообщений: 8

Спасибо за ответ, либы рабочей системы, так что без перепиливания пока. да и фреймворк, пока излишен.
А так, оказалось не пропускал валидатор в браузере
Был указан DOCTYPE html, и в результате все что явно не указанно в px, вероятно обрубало, там где жестко прописано, помечал алертами
Ответить с цитированием
  #4 (permalink)  
Старый 16.07.2014, 12:28
Новичок на форуме
Отправить личное сообщение для valmonv Посмотреть профиль Найти все сообщения от valmonv
 
Регистрация: 16.07.2014
Сообщений: 8

Ой, сорри, фреймворка же нет)
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
JS: работает на сервере, не работает из папки -majestic- Общие вопросы Javascript 2 02.08.2012 14:41
Не работает push! Динамическая вставка TSEH25 ExtJS 5 03.07.2012 13:00
jQyery функция странно работает! Midel Общие вопросы Javascript 4 08.04.2012 13:40
помогите найти ошибку (работает в IE но не работает в Firefox) Len4ik Javascript под браузер 2 11.05.2010 15:41
Safari + ajax некорректно работает, а в других работает demi AJAX и COMET 35 15.07.2009 14:11