2013-05-22 26 views
0

我正在構建一個拖放應用程序。我試圖在移動之前先獲取物品的起始位置。使用jQuery獲取div的起始位置

當應用程序啓動時,我使用'$(document).ready()',然後迭代元素。但是,當這個事件被觸發時,CSS中的左邊和頂端位置似乎還沒有被設置。下面是我用來迭代的代碼:

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

我試過使用'position'和'.css('left')'來獲得值。

我注意到的一件事是,當我在那裏放置一個警報時,觸發器觸發佈局甚至似乎在瀏覽器窗口中開始。

如何獲得這些元素的起始位置?

+1

相對於什麼? – Joseph

+0

不確定你的意思。 .puzzle_piece類是絕對的,因此每個片段都在CSS中設置了左側和頂部。 –

+1

'position()。left'not'position.left' – Jai

回答

2

position()是一個函數。使用:

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

Okie,謝謝。我現在正把頭撞在桌子上。 –

2

如果您想要它與文檔有關,請使用.offset()。這很可能是你需要的。

如果你希望它相對於抵消母公司(即擁有fixedrelative,或absolute位置的父元素),使用.position()