2017-10-21 6 views
0

Ich versuche, eine Webseite zu erstellen, in der der Benutzer Objekte hinzufügen und mit jQuery-UI ziehen kann. Der Code verwendet, um die Objekte hinzugefügt werden (die Bilder oder Text sein kann) können auf diese Weise zusammengefasst werden:jQuery .append() vermasselt Positionierung

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

Als ich das erste Objekt zu erstellen, ich habe keine Probleme. Jedoch jedes nachfolgende Objekt das Ende des vorherigen Objekt verwendet, wie es ist (0; 0) koordinieren, etwa so:

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

Die Koordinaten des Objekts B sind nun (0; 0) ist, obwohl klar ist es nicht in der oberen linken Ecke. Weiß jemand, warum das so ist?

+0

Jedes neu erstellte div wird an das angehängt, was '$ vater' ist (in der Frage nicht gezeigt), also ist es nicht normal, dass sie nacheinander als Geschwisterkinder von' $ vater' erscheinen? Wenn die Koordinaten von Objekt B (0,0) sind, sagt der Kommentar im Code, dass es "Position: relativ" ist, also ist sein Nullpunkt nicht die obere linke Ecke seines Elternteils und das ist auch normal ... – nnnnnn

+0

gibt es eine Möglichkeit, es so zu machen, dass sein Nullpunkt diese Ecke ist? – Sponja

Antwort

0

Sie haben CSS Position Eigenschaft verwenden absolut sein

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

position:absolute; 

Darüber hinaus müssen Sie sicherstellen, dass die die $ Vater Sie sich beziehen ist immer gleich.

Dies kann durch Erstellen eines div/container-Blocks mit position: absolute und Hinzufügen aller neu hinzugefügten Elemente in diesen Block erfolgen.

+0

Danke für die Antwort, aber das löst das Problem nicht – Sponja