2010-04-26 12 views
5

Gibt es eine Bibliothek, die für die Implementierung der Undo/Redo-Funktionalität für DOM-Element-Manipulationen in JavaScript verwendet werden kann?Undo-Implementierung - DOM-Manipulationen

Ich schreibe eine prototype.js App (Memonaut), die um DOM-Elemente bewegt, ermöglicht das Bearbeiten und Löschen dieser Elemente. Es gibt Ereignishandler und andere Objekte, die mit jedem Element verbunden sind, auf das gearbeitet wird.

Nicht sicher, ob ich meine eigene Implementierung des Befehlsmusters dafür rollen muss. Sicher, da muss etwas verfügbar sein? Wenn nicht, wären Vorschläge und Hinweise eine große Hilfe.

+2

Haben Sie Multi-Level-Undo/Redo, oder nur einen Schritt wollen? – nfm

+1

multi-level undo – sonofdelphi

Antwort

5

Sehen Sie sich das jQuery-Plug-In "undoable" an.

+0

Gibt es irgendetwas, was Sie über Prototype wissen? – sonofdelphi

+0

Ich habe Prototyp nie benutzt, sorry. Ich kenne nur YUI, ExtJS und jQuery. –

+7

jquery kann mit dem Prototyp koexistieren, verwenden Sie die Option Kein Konflikt http://api.jquery.com/jQuery.noConflict/ var $ j = jQuery.noConflict(); // benutze nun $ j für jquery und verwende weiterhin $ für den Prototyp – house9

1

Prototyp bietet nur oberflächliches Klonen von Objekten. Also ich glaube, dass Sie Ihre eigene tiefe Klonierungsmethode rollen müssen (this könnte helfen). Wenn Ihr Benutzer dann das DOM manipuliert, können Sie einfach die geklonten Versionen auf einen Stapel schieben und sie vom Stapel entfernen, wenn der Benutzer das Rückgängig machen wählt.

1

Ich habe undo-Redo in GWT Graphen API gesehen. Sie können die folgende URL überprüfen.

GWT ist eine Bibliothek, die heute jeder benutzt. Es unterstützt Implementierungscode in Java-Klassen und kompiliert es dann in JS.

Versuchen um es zu finden, wie wir einmal etwas wie Flussdiagramm Web-Anwendung implementiert haben, die Undo unterstützt wurde/Redo bis n Ebenen ..

hoffe, das hilft.

http://code.google.com/p/gwt-dnd/