2012-04-04 3 views
1

В настоящее время я использую скрипт dragdrop и сохраняю левую и верхнюю координаты (позиция: относительный) div (s). Моя проблема заключается в том, что координаты, в которых они сохраняются, не всегда совпадают с позицией (когда она помещается) при перезагрузке.dragdrop save positioning issue

дивы находятся в контейнере с заданной высоты и ширины (этот контейнер сдерживает дивы двигаться только внутри него - по периметру дел)

Так что я пытаюсь получить координаты для работы только/пространство в пределах DIV, а не на всей странице.

Я использую PHP, чтобы получить правильные DIVS/виджеты для этой страницы, которая дает класс виджета (фон и другие на основе CSS переменные)

Все виджеты имеют собственный идентификатор в случае, если есть более чем один из конкретный виджет

Это мой основной код:

<? 
    $load = mysql_query("SELECT * FROM `widgets` WHERE `page`='1' AND `show`='yes'")or die(mysql_error()); 
    while($widget = mysql_fetch_array($load)){ 
?> 
<div id="<? echo $widget['id']; ?>" style="left: <? echo $widget['left']; ?>px; top: <? echo $widget['top']; ?>px;" class="<? echo $widget['widgetid']; ?> draggable ui-widget-content" onmouseup="find('<? echo $widget['id']; ?>','1')"> </div> 
<? } ?> 

Это мой Javascript для сохранения:

function find(id, page){ 
    var position = $("#"+id).position(); 
    $.ajax({ 
     type: "POST", 
     url: "save.php", 
     data: "l=" + position.left + "&t=" + position.top + "&request=" + page + "&w=" +id, 
     success: function(msg){ 
      var element = document.getElementById(id); 
      element.style.opacity = "1.0"; 
     } 
    }); 
} 

л осталось, т является верхней, и отправлено OnMouseUp (ш = widgetid, запрос = PageId)

Переменные сохранения в базе данных просто не размещается на странице правильно (либо движется далеко вправо или вверх)

Любая помощь была бы принята с благодарностью!

Спасибо заранее

+0

По-прежнему нужна помощь в решении этой проблемы. – Andrew

+0

Моя проблема: родительский div имел позицию ** relative ** сделал мой div (ы) абсолютным и удалил мои контейнеры относительно, и он блестяще работает: D – Andrew

ответ

0

Как указано в jQuery docs на .position():

Получить текущие координаты первого элемента в наборе соответствующих элементов, по отношению к смещению родителя.

Если вы продолжаете читать, он говорит

Contrast это с .offset(), который извлекает текущую позицию отношению к документа.