Aus irgendeinem Grund beträgt der Platzhalter für meine sortierbaren Elemente etwa 10 Pixel. Alle meine sortierbaren Gegenstände haben unterschiedliche Höhen. Wie kann ich die Höhe jedes Platzhalters an das zu verschiebende Objekt anpassen?
jquery
jquery-ui
jquery-ui-sortable
oshirowanen
quelle
quelle
Antworten:
Normalerweise löse ich dieses Problem, indem ich einen Rückruf binde, der die Höhe des Platzhalters auf die Höhe des zu sortierenden Elements für das
start
Ereignis festlegt . Es ist eine einfache Lösung, mit der Sie genau steuern können, wie Ihr Platzhalter angezeigt werden soll.Siehe aktualisierten Testfall
quelle
Haben Sie versucht, die
forcePlaceholderSize:true
Eigenschaft festzulegen? Lesen Sie die Dokumentationsseite zur sortierbaren jQuery-Benutzeroberfläche .quelle
.ui-sortable-placeholder { border: 1px dotted black; visibility: visible !important; height: 50px !important; }
zu ändern.ui-sortable-placeholder { border: 1px dotted black; visibility: visible !important; }
(also die Höhe entfernen) Also @DarthJDG du hast recht!Sind deine Elemente
display: block
? Inline-Elemente können dazu führen, dass der Platzhalter die Höhe nicht richtig beibehält. Z.B. Diese jsFiddle scheint ein ähnliches Problem zu haben wie das von Ihnen beschriebene. Das Hinzufügendisplay: block
zur.portlet
Klasse behebt das Problem.quelle
Anstatt "ui.item.height ()" zu verwenden, können Sie "ui.helper [0] .scrollHeight" verwenden, um ein stabiles Ergebnis zu erzielen, wenn Sie ein Element auch aus einem externen Container ziehen.
quelle
Sie können einen Stil für Ihren Platzhalter als Option für Ihre Sortierbarkeit festlegen.
Und geben Sie diesem Stil einfach eine Höhe. Hoffe das funktioniert.
quelle
In meinem Fall habe ich eine ähnliche Lösung wie JP Hellemons gefunden , bei der ich die Höhe des Platzhalters (mit ! Wichtig ) auf benutzerdefiniert erzwinge und auch die Sichtbarkeit mit Hintergrund einstelle, um Änderungen für mich selbst zu sehen (Sie können Ihren Platzhalter auch so gestalten, wie Sie möchten ).
Dies funktioniert auch mit
display: inline-block;
quelle