2010-04-26 1 views
5

Có thư viện nào có thể được sử dụng để triển khai chức năng hoàn tác/làm lại cho thao tác phần tử DOM trong JavaScript không?Hoàn tác triển khai - Thao tác DOM

Tôi đang viết một ứng dụng prototype.js (memonaut) di chuyển xung quanh các phần tử DOM, cho phép chỉnh sửa và xóa các phần tử đó. Có các trình xử lý sự kiện và các đối tượng khác được liên kết với mỗi phần tử được vận hành.

Bạn không chắc mình có cần triển khai thực hiện mẫu Command của riêng mình cho việc này hay không. Chắc chắn, phải có một cái gì đó có sẵn? Nếu không, gợi ý và con trỏ sẽ là một trợ giúp tuyệt vời.

+2

Bạn có muốn hoàn tác nhiều lần/làm lại hay chỉ một bước? – nfm

+1

đa cấp hoàn tác – sonofdelphi

Trả lời

5

Hãy xem plugin jQuery "undoable".

+0

có bất kỳ điều gì bạn biết về Prototype không? – sonofdelphi

+0

Tôi chưa bao giờ sử dụng Prototype, xin lỗi. Tôi chỉ biết YUI, ExtJS và jQuery. –

+7

jquery có thể 'cùng tồn tại' với nguyên mẫu, sử dụng tùy chọn không xung đột http://api.jquery.com/jQuery.noConflict/ var $ j = jQuery.noConflict(); // bây giờ sử dụng $ j cho jquery và tiếp tục sử dụng $ cho nguyên mẫu – house9

1

Nguyên mẫu chỉ cung cấp các đối tượng nhân bản nông. Vì vậy, tôi tin rằng bạn sẽ cần phải cuộn phương pháp nhân bản sâu của riêng bạn (this có thể giúp). Sau đó, khi người dùng của bạn thao tác DOM, bạn có thể chỉ cần đẩy các phiên bản nhân bản vào một ngăn xếp và bật chúng ra khỏi ngăn xếp nếu người dùng chọn để hoàn tác.

1

tôi đã thấy hoàn tác làm lại trong biểu đồ GWT API. Bạn có thể kiểm tra URL sau.

GWT là thư viện mà mọi người sử dụng ngày nay. Nó hỗ trợ thực thi mã trong các lớp Java và sau đó biên dịch nó thành JS.

Hãy thử tìm kiếm xung quanh nó, như chúng ta đã thực hiện điều như ứng dụng web sơ đồ dòng chảy mà đã được hỗ trợ undo/redo tối đa mức n ..

hy vọng điều này giúp một lần.

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