Ich verwende die Bibliotheksfunktionen JQuery UI droppable, und ich möchte visuelle Benutzerfeedback bereitstellen, wenn sie über ein abwerfbares Ziel schweben. Dazu kann ich einfach die Option hoverClass
verwenden, um anzugeben, welche Klasse verwendet werden soll, wenn ein ziehbares Objekt über dem Objekt liegt.Jquery UI Droppable: Wie kann ich verschiedene HoverClass-Werte basierend auf einer Logik verwenden?
Aber was ich tun möchte, ist ein anderer hoverClass
Wert je nach Logik. Grundsätzlich gibt es eine Reihe von Bereichen, die "droppable" sind, und es gibt eine Reihe von Elementen, die per Drag & Drop verschoben werden können. Es können jedoch nicht alle Elemente in allen Bereichen gelöscht werden. So hätte ich zum Beispiel einen grünen Hintergrund, wenn der Tropfen gültig ist, und einen roten Hintergrund, wenn der Tropfen ungültig ist.
Wie kann das gemacht werden? Ich weiß, welche Logik ich verwenden möchte, aber wo kann ich die Logik hinzufügen. Es muss offensichtlich irgendwo sein, dass ich auf das Element zugreifen kann, das gezogen wird, und auf das potentielle Drop-Zielelement.
Mein einfachen Code so weit ist wie folgt:
$(".DragItem").draggable({
revert: true,
helper: "clone"
});
$(".DropItem").droppable({
tolerance: "touch",
hoverClass: "DropTargetValid"
});
Ihre Frage nicht direkt beantworten, aber klingt für Ihren Anwendungsfall richtig - haben Sie sich mit den 'scope' /' accept' Optionen bestimmte draggables bestimmten droppables zuweisen? Dann würden Sie keine Logik benötigen, um HoverClass zu bestimmen - es würde nur zugewiesen werden, wenn das ziehbare Objekt das Dropable akzeptiert. – freejosh
@freejosh: Ich glaube nicht, dass ich dadurch eine Klasse für "ungültige" Tropfen spezifizieren könnte. Habe meine Antwort jetzt trotzdem: D – musefan