Mein Problem ist es, die Position des Elements dropped.
Ich verwende stop:
Option auf .draggable
, um die neue Position zu erhalten.
Jquery Drag & Drop Ereignisdelegierung: stop & drop
$('.elementsDiv').draggable({
revert: 'invalid', //Revert when drop fails
helper: 'clone', //Drag a clone
stop: function() {
//Dropped position.
Stoppos = $(this).position();
}
});
Wenn schleppte ich das Element entfernen möchte von ihm Eltern, und fügen Sie sie neue Eltern es ist.
Das ich mit .droppable
$('.flakUp, .flakDown').droppable({
accept: '.elementsDiv',
drop: function (event, ui) {
//get dragged element
var draggedElement = $(ui.draggable);
//get dropZone
var dropZone = $(this);
//Remove element from list and append it to dropZone
draggedElement.detach().appendTo(dropZone.position(Stoppos));
//Make element draggable
draggedElement.draggable();
}
});
Wenn ich entfernen/append, wird die neue Position links oben sein.
Also ich muss die abgelegte Position von .draggable
bekommen und es in .droppable
Drop-Funktion verwenden, um das Element dorthin zu verschieben, wo es fallen gelassen wurde.
Hier beginnt mein Problem!
In der Konsole bekomme ich: Stoppos ist nicht definiert.
Ich denke, der Droppable-Drop wird ausgeführt, bevor ziehbar-Stop ?!
Wie kann ich das lösen?
Ich muss einen Klon erstellen, wegen Indexproblemen. Daher muss ich auch das Element entfernen/anhängen.