2013-05-22 4 views
0

Я создаю приложение для перетаскивания. Я пытаюсь получить начальную позицию элементов, которые нужно перетащить, прежде чем они будут перемещены.Получить начальную позицию div с помощью jQuery

Когда приложение запускается, я использую '$ (document) .ready()', а затем итерацию через элементы. Однако, когда это событие срабатывает, левая и верхняя позиции в CSS, похоже, пока не установлены. Вот код, я использую для итерации:

var t; 
$('.puzzle_piece').each(function(){ 
    t = $(this); 
    t.startX = t.position.left; 
    t.startY = t.position.top; 
}); 

Я попытался с помощью «позиции» и «.css („левого“)», чтобы получить значение.

Одна вещь, которую я заметил, заключается в том, что когда я размещаю предупреждение, предупреждения срабатывают, прежде чем макет даже, кажется, начинается в окне браузера.

Как я могу получить исходное положение этих элементов?

+1

Относительно чего? – Joseph

+0

Не уверен, что вы имеете в виду. Класс .puzzle_piece является абсолютным, поэтому каждая часть имеет левый и верхний набор в CSS. –

+1

'позиция(). Левый' не' позиция.left' – Jai

ответ

2

position() - это функция. Использование:

t.startX = t.position().left; 
t.startY = t.position().top; 
+1

Okie, спасибо. Я сейчас стуча головой по столу. –

2

Если вы хотите относительно документа, а затем использовать .offset(). Скорее всего, это тот, который вам нужен.

Если вы хотите относительно родительского смещения (родительский элемент, который имеет положение fixed, relative или absolute), используйте .position().

Смежные вопросы