Ich versuche, etwas wie ein UI-Designer zu erstellen. Also habe ich eine "Toolbox" und eine "Leinwand". Wenn ich die Toolbox-Elemente als ziehbar markieren, kann ich sie ziehen. Aber ich muss eine Kopie ziehen, damit ich mehrere Instanzen eines Werkzeugelements auf die Arbeitsfläche ziehen kann.Ändern Sie das gezogene Objekt, wenn ziehbare beginnt
$('.tool-box-item').draggable({
helper : 'clone',
drag : function (event, ui){
// jQuery does not allow object modification here
},
});
Dies funktioniert nicht wie das Klonen nur angewandt wird, beim Ziehen und sobald der Widerstand abgeschlossen ist, wird das ursprüngliche Element bewegt. Ich habe versucht, die Drag-Eigenschaft zu überschreiben, aber ich kann das gezogene Element nicht ändern. Gleiches war der Fall beim Start.
Hinweis: Ich kann das Stop-Ereignis nicht verwenden, da ich die Kopie erstellen möchte, wenn der Ziehvorgang beginnt und nicht danach. Ich war auch in der Lage, eine Kopie zu erstellen, indem ich den Canvas als Droppable definiere und eine Kopie dort mache. Aber dann möchte ich eine Kopie erstellen, wenn der Ziehvorgang beginnt.
Ich denke, ich muss eine benutzerdefinierte Drag-Funktion erstellen, aber hoffte, wenn jQuery einen anderen alternativen Weg hat.
Hier ist ein jsfiddle, aber ich möchte das Element am Anfang und nicht nach dem Ziehen klonen.
EDIT: Das Ziel ist ein Drittanbieter-Steuerelement. Es hat eine eigene Implementierung für das Drop-Event (Stacking und Alignment). Falls ich es am Ende kloniere, muss ich ihre Implementierung modifizieren.
Könnten Sie bitte erklären, warum sollten Sie Klon Element beim Start des Ziehens, aber nicht am Ende? –
@YuriGor Das Ziel ist ein Drittanbieter-Steuerelement. Es hat eine eigene Implementierung für das Drop-Event (Stacking und Alignment). Falls ich es am Ende kloniere, muss ich ihre Implementierung modifizieren. –
Ich sehe .. Überprüfen Sie meine Antwort unten, ich habe es entsprechend dieser Anforderung bearbeitet, möglicherweise wird dies funktionieren. –