2017-10-21 110 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