3 Stimmen

JsTree mit dnd-Plugin, immer kopieren

Ich habe 2 Bäume mit jsTree und dnd-Plugin.
Ich möchte, dass jeder Ziehvorgang ein Kopieren und nicht ein Verschieben ist.
Es gibt eine "copy_modifier", die Ok funktioniert, wenn Sie eine Modifikatortaste drücken, aber ich möchte kopieren, um das Standardverhalten ohne den Modifikator sein. Irgendwelche Ideen?

Danke,
Adrian

3voto

Adrian Magdas Punkte 613

Eine Lösung gefunden auf http://groups.google.com/group/jstree
Ich habe den folgenden Abschnitt bei der Konfiguration von jsTree hinzugefügt:
"crrm": { "move": { "always_copy": [ ] }

Ich hoffe, das hilft,
Adrian

3voto

Diode Punkte 23350

Eine andere Lösung für die neue Version. Es funktioniert, aber nicht vollständig getestet.

"core": {
    "check_callback": function (operation, node, node_parent, node_position, more) {
        if (more) {
            if (more.is_multi) {
                more.origin.settings.dnd.always_copy = true;
            } else {
                more.origin.settings.dnd.always_copy = false;
            }
        }
        return true;
    }
}

2voto

Gorky Punkte 1285

Adrians Lösung wird mit den neuen Versionen nicht funktionieren. Da ist das dnd-Plugins immer kopieren Flag dnd.always_copy

Wenn Sie dieses Flag setzen, werden alle Drag&Drop-Vorgänge als Kopieren statt als Verschieben ausgeführt. Aber wenn Sie nach einer Lösung suchen, bei der Sie interne Baumelemente verschieben, aber die Elemente zwischen den Bäumen kopieren möchten, dann haben wir hier einen Hack:

  • Behalten Sie eine globale Variablenflagge auf Ihrer Seite

  • Behandeln Sie copy_node.jstree-Ereignisse und aktualisieren Sie Ihr globales Flag aus data.is_multi (data ist das zweite Argument der Ereignisfunktion)

  • Umsetzung check_callback Funktion und wenn die Operation delete_node ist und Ihr Flag gesetzt ist, setzen Sie Ihr Flag zurück und geben Sie false zurück, um das Löschen aus dem dnd zu verhindern.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X