Ich mache eine App, die ein Dropable div
und ein paar ziehbare div
s verwendet. Wie kann ich festlegen, dass nicht mehr als eine ziehbare div
akzeptiert wird? Ich habe gegoogelt, aber keine Abhilfe gefunden.
Eine Workaround kam mir in den Sinn. Wie kann ich überprüfen, gibt es Drop-Element in diesem Droppable div? Wenn es ausgelastet ist, dann ziehe dieses ziehbare Objekt zurück, das versucht wird, fallen gelassen zu werden
OK hat eine gute Lösung dafür gefunden, im Wesentlichen auf "Drop". Ich habe das Droppable so eingestellt, dass es nur das Objekt akzeptiert, das hineingezogen wurde.
Wenn Sie 'disable' deaktivieren, ist das 'out' Event, das Sie neu initialisieren müssen, nicht mehr verfügbar. Stattdessen habe ich nur die auswählbaren Elemente umgestellt.
Dann ist es für mich möglich, das OUT-Ereignis zu verwenden, um alle ziehbaren Elemente erneut zu akzeptieren, und da nichts anderes akzeptiert wird, wird der OUT nicht durch andere ziehbare Elemente ausgelöst:
%Vor% Sie können das .droppable()
Widget nach dem ersten drop
wie folgt löschen:
Diese Lösung löst einen großen Fehler in der Antwort von Likwid_T.
%Vor%Wie wäre es damit:
%Vor%Auf diese Weise gibt die accept-Funktion nur dann true zurück, wenn noch keine Elemente gelöscht wurden.
Ich verbringe viele Stunden damit, es herauszufinden, und schließlich funktioniert es für mich so:
%Vor%Sie können es auch andersherum tun, indem Sie das ziehbare Objekt zurücksetzen, wenn das droppable eine bestimmte Klasse oder ein bestimmtes Attribut aufweist (aufbauend auf diesem Beispiel: Ссылка ).
Verwenden Sie zum Beispiel das Attribut rel
(Sie könnten auch class
oder etwas anderes verwenden) für das Droppable:
Und der ziehbare:
%Vor% Meine Lösung ähnelt der von Likwid_T, außer dass sie das Dropable drop
-Ereignis verwendet sowie die Verbindungen zwischen Draggables und Droppables statt des% code_de% -Ereignisses von dropable beibehält. Ich denke, das Problem bei der Verwendung von out
ist, dass es ausgelöst wird, selbst wenn ein ziehbares Objekt über ein bereits "vollständiges" Objekt gezogen und dann "out" wird.
Ein zugehöriges Feature ist, dass man ein Element über ein Droppable zieht, das bereits ziehbar ist, das alte wird ersetzt und auf seine ursprüngliche Position zurückgesetzt. So mache ich es:
%Vor%