2017-10-21 140 views
0

我想創建一個網頁,用戶可以在其中添加對象並使用jQuery-UI拖動它們。用於添加的對象(可以是圖像或文本)的代碼可以概括這種方式:jQuery .append()弄亂定位

function createObject($inner) { 
    var $newObject = $("<div></div>").append($inner) 
    .attr(/* some attributes */) 
    .css(/* some css (which makes the position relative) */) 
    .appendTo($father); 
} 

當我創建的第一個對象,我沒有問題。然而,每個後續的對象使用以前的對象的端部,因爲它是(0; 0)座標,像這樣:

+----------++----------+ 
| object A || object B | 
+----------++----------+ 

對象B的座標現在是(0; 0),儘管它明顯地不在左上角。有人知道這是爲什麼嗎?

+0

每個新創建的div都被追加到「$ father」所在的任何地方(問題中未顯示),因此它們作爲'$ father'的兄弟兒童一個接一個地出現並不正常嗎?關於對象B的座標是(0,0),代碼中的註釋表示它是'position:relative',因此它的零點不是其父代的左上角,這也是正常的... – nnnnnn

+0

是有辦法讓它的零點就在那個角落嗎? – Sponja

回答

0

你必須使用CSS position屬性是絕對

https://www.w3schools.com/cssref/pr_class_position.asp

position:absolute; 

此外,你必須確保你指的是在$父親總是相同的。

這可以通過創建位置爲absolute的div /容器塊並將所有新添加的元素添加到該塊中來完成。

+0

感謝您的回答,但這並不能解決問題 – Sponja