2013-03-07 110 views
1

好吧,我有一個奇怪的困境。當我得到一個元素的位置並輸出時,我實際上得到了該物體的真實座標。像這樣如下:jQuery動態設置對象的位置?

var el = $('#element'); 

var position = el.position(); 

console.log(position); 

給出的輸出是一樣的東西:

Object { top=0, left=120} 

效果很好,但現在如果我的對象設置爲位置:絕對,我得到一個奇怪的輸出。下面的代碼是我正在做的一個例子。

var el = $('#element'); 

var position = el.position(); 

el.css({ 
    top: position.top + 'px', 
    left: position.left + 'px', 
    position: 'absolute' 
}); 

console.log(position); 

現在我得到的輸出如下所示。

Object { top=0, left=0} 

如此看來,在位置:絕對被重置頂部和左側。

我的問題是...如何設置對象的左側和頂部位置,並將其設置爲position:absolute through jQuery?

http://jsfiddle.net/sbe3C/2/

更新2: 沒關係,我在下面評論說,這個問題似乎只發生時,我嘗試設置的絕對位置到每一個()循環內的對象。下面有一個jsfiddle例子。

http://jsfiddle.net/geocalleo/atNFz/

+0

你可以做一個http://jsfiddle.net? – Jrod 2013-03-07 22:56:49

+0

嘗試讓你的CSS位置:絕對,頂部:0,左:0然後你會看到它在屏幕上變化。然後使其絕對,頂部:20,左:20在你的CSS和位置應該顯示 – ntgCleaner 2013-03-07 23:00:55

+0

jsfiddle看起來像它在工作 – Ben 2013-03-07 23:22:11

回答

1

我想通了!問題是我需要從下到上迭代項目。我從另一個question on StackOverflow得到了答案。

所以現在看起來是這樣的

$($('body > div').get().reverse()).each 

退房的jsFiddle