jQuery ui sortierbare ungenaue Platzhalterplatzierung in verschachtelten Sortiern

9

Ich habe ein sortierbares Element in einem anderen sortierbaren Element. Beide sind miteinander verbunden. Nach dem Beispiel Markup:

%Vor%

Was ich versuche ist, mehrere Objekte zwischen .parent s und #container zu ziehen.

Nachfolgend ist das JS:

%Vor%

Folgendes

JSFiddle

mit dem ganzen Code ( Ich entfernte den Code zum Anhängen von Elementen, um den Code zu minimieren, da dies für die Platzhalterposition nicht relevant ist ) zeigt das Problem, vor dem ich stehe:

Ich kann Elemente von .parent folgendermaßen in die #container ziehen:

  • Durch Ziehen der Elemente links von #container wie unten gezeigt:
  • Durch Ziehen von Objekten über #container durch den Raum zwischen .parents ( Dies ist ein wenig schwierig, funktioniert aber, wenn das Zentrum genau über dem Raum liegt), wie unten gezeigt:

Aber Wenn ich ein Element nach draußen ziehe, erscheint der Platzhalter nicht auf der rechten Seite von #container , auch wenn ich das Element direkt darüber bewege.

Erwartete Ausgabe:

Aktuelles Ergebnis:

Wie in der Abbildung gezeigt, befindet sich der Platzhalter innerhalb von .parent , obwohl das Objekt nicht in #container enthalten ist.

Von dem, was ich versuchte, ist das Problem mit dem folgenden:

%Vor%

Wo blende ich die ausgewählten Elemente mit display:none aus, was möglicherweise zu Fehleinschätzungen mit jQuery UI führt.

Also habe ich versucht zu aktualisieren und refreshPositions im Start -Ereignis als in diesem JSFiddle , was die erwartete Ausgabe erzeugt, aber den Platzhalter in den beiden anderen Szenarien nicht mehr korrekt in #container anzeigt.

Ich möchte Objekte von .parent nach #container von

ziehen können
  1. Ziehen von Objekten links von #container
  2. Ziehen von Objekten über #container durch den Abstand zwischen .parents
  3. Ziehen von Objekten rechts von #container

Randnotiz: Die meisten sortierbaren Optionen werden hinzugefügt, während Sie versuchen, das Problem zu beheben CSS-Dimensionen dienen nur zu Demonstrationszwecken, diese können bei Bedarf hinzugefügt oder entfernt werden.

Update: Das scheint ein Bug zu sein, den ich hier gemeldet habe. Das jQuery UI-Team hat geantwortet, dass alle Interaktionen neu geschrieben werden. Hoffentlich wird das in der nächsten Version behoben.

    
T J 31.08.2014, 18:16
quelle

2 Antworten

1

Bearbeiten:

Machen Sie sich nichts draus mit dem Third-Party-Plugin, schauen Sie nach, ob Sie das wollten: Ссылка - alt

Ссылка - neu

HTML

%Vor%

CSS

%Vor%

JS

%Vor%

Wenn jQuery -Plugins von Drittanbietern zugelassen sind, sehen Sie sich Ссылка an.

    
adamj 05.09.2014 08:01
quelle
1

In meinem Code ist es fast zu einer Konvention geworden, diesen schlecht dokumentierten Hack nur auf die Callback-Funktionen over und out von Sortable anzuwenden:

%Vor%

Dadurch wird sichergestellt, dass die Positionen aktualisiert werden. Im Gegensatz zu den integrierten Methoden refresh und refreshPositions scheint dies zu funktionieren.

Könnten Sie diesen Ansatz ausprobieren und sehen, ob er das Verhalten von Sortierbar verbessert?

    
Hein Haraldson Berg 09.09.2014 09:24
quelle