2010-04-26 19 views
5

¿Existe una biblioteca que se pueda utilizar para implementar la funcionalidad deshacer/rehacer para manipulaciones de elementos DOM en JavaScript?Deshacer implementación - DOM manipulaciones

Estoy escribiendo una aplicación prototype.js (memonaut) que se mueve alrededor de elementos DOM, permite la edición y eliminación de esos elementos. Hay controladores de eventos y otros objetos asociados con cada elemento operado.

No estoy seguro de si necesito transferir mi propia implementación del patrón de comando para esto. Sin duda, debe haber algo disponible? De lo contrario, las sugerencias y los consejos serían de gran ayuda.

+2

¿Quieres deshacer multinivel/rehacer, o simplemente un paso? – nfm

+1

Deshacer de varios niveles – sonofdelphi

Respuesta

5

Eche un vistazo al plugin jQuery "undoable".

+0

¿Hay algo que sepa sobre Prototype? – sonofdelphi

+0

Nunca utilicé Prototype, lo siento. Solo conozco YUI, ExtJS y jQuery. –

+7

jquery puede 'coexistir' con prototipo, use la opción sin conflicto http://api.jquery.com/jQuery.noConflict/ var $ j = jQuery.noConflict(); // ahora usamos $ j para jquery y continuamos usando $ para prototipo – house9

1

El prototipo solo ofrece clonación superficial de objetos. Por lo tanto, creo que deberá aplicar su propio método de clonación profunda (podría ser de ayuda el this). Luego, a medida que su usuario manipula el DOM, simplemente puede insertar las versiones clonadas en una pila y sacarlas de la pila si el usuario decide deshacer.

1

he visto deshacer-rehacer en GWT graphs API. Puede consultar la siguiente URL.

GWT es una biblioteca que todos usan hoy en día. Admite implementar código en clases Java y luego lo compila en JS.

Trate de encontrar a su alrededor, como hemos puesto en marcha una vez que algo como aplicación web diagrama de flujo que recibió el apoyo de deshacer/rehacer hasta niveles n ..

esperanza esto ayuda.

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