2010-04-26 18 views
5

Czy istnieje biblioteka, która może być użyta do implementacji funkcji cofania/przywracania dla manipulacji elementami DOM w JavaScript?Cofnij implementację - DOM manipulacje

Piszę aplikację prototype.js (memonaut), która porusza się wokół elementów DOM, umożliwia edycję i usuwanie tych elementów. Istnieją funkcje obsługi zdarzeń i inne obiekty związane z każdym operowanym elementem.

Nie jestem pewien, czy muszę zastosować własną implementację wzorca polecenia. Z pewnością musi być coś dostępnego? Jeśli nie, sugestie i wskazówki będą bardzo pomocne.

+2

Chcesz wielopoziomowe Undo/Redo, lub krok? – nfm

+1

cofanie wielopoziomowe – sonofdelphi

Odpowiedz

5

Zobacz wtyczkę jQuery "undoable".

+0

Czy jest coś, co wiesz o prototypie? – sonofdelphi

+0

Nigdy nie użyłem Prototypu, przepraszam. Znam tylko YUI, ExtJS i jQuery. –

+7

jquery może "współistnieć" z prototypem, użyj opcji braku konfliktu http://api.jquery.com/jQuery.noConflict/ var $ j = jQuery.noConflict(); // teraz użyj $ j dla jquery i kontynuuj używanie $ dla prototypu – house9

1

Prototyp oferuje jedynie płytkie klonowanie obiektów. Sądzę, że będziesz musiał przetestować własną metodę głębokiego klonowania (pomocna może być this). Następnie, gdy twój użytkownik manipuluje DOM, możesz po prostu wypchnąć sklonowane wersje na stos i wyrzucić je ze stosu, jeśli użytkownik zdecyduje się cofnąć.

1

Widziałem cofanie zmian w interfejsie API wykresów GWT. Możesz sprawdzić poniższy adres URL.

GWT to biblioteka, z której wszyscy dziś korzystają. Obsługuje kod implementacji w klasach Java, a następnie kompiluje go do JS.

Spróbuj znaleźć wokół niego, jak wdrożyliśmy raz coś takiego diagramu przepływu internetowej aplikacji, która była wspierana Undo/Redo do połowy poziomów N ..

nadziei, że to pomoże.

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