2013-10-11 3 views
2

Можно ли отменить последнюю модификацию DOM?JS UNDO DOM модификация

Я попытался вспомнить состояние после каких-либо изменений по

И затем, если это необходимо, чтобы восстановить #container содержимое из этого массива, но он теряет все события, присоединенные непосредственно к элементам.

+2

Если единственной проблемой является обработка событий динамически сгенерированных элементов, то делегирование является ответом. – undefined

+0

Нет, нет встроенного способа отмены изменений. Да, если вы создадите систему, которая позволит вам «отменить» модификацию, вам придется учитывать множество деталей, например событий. – deceze

+0

См. Параметр 'withDataAndEvents' для [' clone() '] (http://api.jquery.com/clone/). Это может сработать для вас. –

ответ

3

Pass true в .clone() сохранить события и данные.

undoArray = [ $("#container").clone(true) ]; 

Docs для .clone()

Только не забудьте очистить данные, если вы собираетесь уничтожить элемент в массиве, не помещая его в DOM.

+0

Спасибо! Я не знал, что – pie6k

1

Если вы хотите, чтобы сохраняться события, а затем передать true для clone()withDataAndEvents

$("#container").clone(true) 

или прикрепить с помощью on() к document

$(document).on('eventName','targetSelector', eventHandler); 
Смежные вопросы